这是我的简单内部连接:
SELECT paintings.*, locations.*
FROM paintings
INNER JOIN locations
ON locations.work_type = 'paintings' AND locations.work_id = 'paintings.id'
WHERE locations.location LIKE '%19th%'
它返回零结果。我希望它根据具有共同的 work_type 和 id 找到在位置表中具有匹配项的每个绘画行。我知道有匹配项,因为
SELECT * FROM locations WHERE location LIKE '%19th%' AND work_type = 'paintings'
我得到了 1000 多个结果。
我做错了什么?
谢谢...
最佳答案
你需要改变这部分:
locations.work_id = 'paintings.id'
为此:
locations.work_id = paintings.id
您当前的查询要求locations.work_id
字段包含实际文字值“paintings.id”;您想要的是要求 locations.work_id
字段包含与 paintings.id
字段相同的值。
关于mysql - 非常简单的 MySQL INNER JOIN 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9252850/