[英]WHERE on JOINed table - only apply if rows are found (joined)
我的查詢:
SELECT
T1.*
FROM
table1 T1
LEFT JOIN table2 T2 ON T2.fk = T1.id
WHERE
T2.active = 1
並非table1
中的所有行都可以連接到table2
。 對於那些可以的,應該設置T2.active=1
約束。
問題:
如果在table2
中找不到連接的行,但我仍然會從table1
中獲取行(有點, IF EXISTS, then T2.active=1
),我該如何修復該查詢
謝謝!
第二張表的條件應該在on
子句中:
SELECT T1.*
FROM table1 T1 LEFT JOIN
table2 T2
ON T2.fk = T1.id AND T2.active = 1;
請注意,如果您只是從table1
中選擇列,這並不是特別重要。 我假設您的SELECT
實際上有兩個表中的列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.