MySQL - 在2个表上左边连接条件

时间:2014-09-16 23:18:43

标签: mysql left-join

我有两张桌子:

T1:

id | bookable
1  | 1
2  | 1
3  | 0
4  | 1
5  | 0

T2:

id | t1_id
1  |   2
2  |   2
3  |   3
4  |   4
5  |   2

我想在t2.t1_id

中选择t1行,其中“可预订”为1或至少一个对应的值

以我的例子来说,这就是结果:

t1.id => 1,2,3,4

我尝试了一些“左连接”,“计数”,“有”& “分组”,但我无法得到我想要的结果:(

感谢所有帮助。

谢谢!

2 个答案:

答案 0 :(得分:0)

潜伏者说你不是想要COUNT或GROUP BY。 试试这个

     select t1.* 
     from t1 left join t2
     on t1.id = t2.t1_id
     where t1.bookable = 1
     or t1.id in (select t2.t1_id from t2)

答案 1 :(得分:0)

由于联接表中的id不再是唯一的,因此GROUP BY可以/可以发挥作用。使用LEFT JOIN时,联接表的t1.id列中t1_id存在的条件是t2属性(t2.id或{{1} }})不是NULL:

t1_id