我有3张表如下:
table "first"
---------------
id item
1 pen
2 book
table "second"
------------------
id color
1 A
2 B
3 C
table "third"
------------------------
id first second
1 1 2
2 2 2
3 2 3
表“第三”与“第二”和“第一”之间的关系
我想从“First”表中查询ID=2的“Item”图书,在“Third”表中检查它,然后得到第三列值。第二列值与第三列=2匹配,然后拉出该值(可以是多个),然后从表“Second”中获得第二个颜色值。
我希望我的问题已经说得很清楚了。我已经试过了,但它带来了错误:
#1242-子查询返回多于1行
SELECT color FROM `second` WHERE `id`=
(SELECT second FROM `third` WHERE `first`=
(SELECT id FROM `first` WHERE `item`='book'))
发布于 2018-08-02 11:32:11
你需要JOIN
语法,如下所示:
SELECT
second.color
FROM
first
LEFT JOIN third
ON first.ID=third.first
LEFT JOIN second
ON third.second=second.ID
WHERE
first.item='book'
AND
second.ID IS NOT NULL
https://stackoverflow.com/questions/-100008738
复制相似问题