我不明白为什么我所做的不起作用。
我有两张桌子
Table1
id_tb1 | tb1field
1 aaa
2 bbb
3 ccc
4 ddd
5 eee
Table2
id_stuff | id_tb1
1 1
1 4
1 5
2 1
3 1
id需要加入tb1和tb2,同时列出tb1中的所有记录。像这样的:
Result
id_tb1 | tb1field | tb2.id_stuff
1 aaa 1
2 bbb NULL
3 ccc NULL
4 ddd 1
5 eee 1
所以我这么做了:
SELECT t1.*, t2.id_stuff
FROM Table1 t1
LEFT JOIN Table2 t2 ON t2.id_tb1 = t1.id_tb1
WHERE t2.id_stuff = 1
但显然,这不是个好办法。
有人有主意吗?
谢谢。
最佳答案
如果在WHERE子句中的左联接表上添加条件,这就如同在WHERE执行内部联接一样。
将该条件添加到左连接
SELECT t1.*, t2.id_stuff
FROM Table1 t1
LEFT JOIN Table2 t2 ON t2.id_tb1 = t1.id_tb1 and t2.id_stuff = 1
关于mysql - 列出所有行,尽管加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24427170/