[英]MySQL - Left join with condition on 2 tables
我有這兩個表:
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
並且我想選擇“可預訂”為1或t2中至少一個對應值的t1行。
以我的示例為例,結果如下:
t1.id => 1,2,3,4
我已經嘗試過使用“左聯接”,“計數”,“具有”和“分組依據”的一些請求,但是我無法獲得想要的結果:(
感謝所有幫助。
謝謝!
正如潛伏者所說,您並不想嘗試進行任何計數或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)
由於聯接表中的id
不再是唯一的,因此GROUP BY
可以/可以起作用。 與LEFT JOIN
,該條件t1.id
存在於t1_id
連接表的列是任一的t2
屬性( t2.id
或t1_id
)不是NULL:
SELECT t1.id FROM t1
LEFT JOIN t2 ON t1_id = t1.id
WHERE bookable = 1 OR NOT ISNULL(t2.id)
GROUP BY t1.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.