我有以下3个表如何从MySQL的单个列中选择多个表中的多个值?
table1的
id name
----------
1 john
2 dave
3 eve
表2
table1_id table3_id
----------------------
1 2
1 3
1 5
2 2
2 3
2 4
3 1
3 5
表3
id title
------------
1 blue
2 orange
3 green
4 yellow
5 black
我想选择每个table1.name其中table3.title =(蓝色或橙色)AND(绿色或黑色)
使输出为
name
----
john
dave
这是迄今为止,不会得到这份工作做了我的查询:
SELECT table1.name
FROM table1
JOIN table2 ON table1.id = table2.table1_id
JOIN table3 t1 ON table2.table3_id = t1.id
JOIN table3 t2 ON t1.title = t2.title
WHERE t1.title IN ('blue', 'orange')
AND t2.title IN ('green', 'black')
任何建议将非常感激!
UPDATE 一个问题:)
如何选择每个table1.name其中table3.title =( '绿', '橙' 和 '黑' 和 '...')
太棒了!这解决了我的问题100%。感谢名单! – fl0w 2011-05-21 09:12:09
还有一个问题..当我想要选择每个table1.name时,查询将如何显示table3.title =('green'AND'blue'AND'black'AND'...')Thanx提前! – fl0w 2011-05-21 09:30:22
根据需要替换in子句。如果两个条件相互关联,您也可以将它们放在where子句中。 – 2011-05-21 11:11:11