我不明白为什么我的尝试不起作用。
我有两张桌子
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
需要的是加入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
但显然,这不是一个好的解决方案。 有人有想法吗? 谢谢。
答案 0 :(得分:3)
如果在WHERE子句中的LEFT JOINed表上添加条件,就好像在做INNER JOIN的那样。
将该条件添加到左连接
SELECT t1.*, t2.id_stuff
FROM Table1 t1
LEFT JOIN Table2 t2 ON t2.id_tb1 = t1.id_tb1 and t2.id_stuff = 1
答案 1 :(得分:3)
试试这个。
SELECT t1.*, t2.id_stuff
FROM Table1 t1
LEFT JOIN Table2 t2 ON t2.id_tb1 = t1.id_tb1 and t2.id_stuff = 1