mysql - 非常简单的 MySQL INNER JOIN 失败

标签 mysql sql join

这是我的简单内部连接:

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/

相关文章:

mysql - 在 SQL group by 语句中,显示匹配行字段之一

mysql - 如何以逗号分隔获取重复的列值

sql - 为什么 Entity Framework 生成的查询运行时间是直接运行相同查询的两倍?

c# - 带有数据透视表的 CTE

sqlzoo 跟踪加入练习

mysql - 从不同的表中选择多行

MYSQL嵌套内连接查询

php - 获取最后 x 条记录的最佳方法是什么?使用 MySQL 限制和 ORDER DESC?

目录表中的 PHP HTML 图像

.net - 如何使用 LINQ to Entities 运行 T-SQL 查询?