我想以使用COUNT
作爲JOIN
的條件的方式將sql JOIN
與COUNT
一起使用。使用COUNT的SQL JOIN
例如
SELECT * FROM tbl1
INNER JOIN (SELECT * FROM tbl2) t2
ON (SELECT COUNT(*) FROM tbl1) > 0
這是可能的,或有人可以告訴我另一種方式嗎?
PS-我遇到的真正問題是我有兩個表A和B,我需要從A中選擇ID,其中創建日期大於某個值。同時我想確保表B在表A中沒有該ID。這可以正常工作,但是當我在表B中沒有數據時,查詢不會產生任何結果。
SELECT a.user_id from (SELECT * FROM A WHERE DATEDIFF(event_date,'certain_value') >=another_value) a INNER JOIN B b ON a.user_id != b.user_id
我試圖用計數這樣,但未能
SELECT a.user_id from (SELECT * FROM A WHERE DATEDIFF(event_date,'certain_value') >=another_value) a INNER JOIN B b ON count(B.user_id) = 0 OR a.user_id != b.user_id
你能解釋'ON(SELECT COUNT(*)FROM tbl1)> 0'發生了什麼? – Coffee
什麼是關係在tbl1 COUNT()和tbl2之間? –
我不能馬上理解它,儘管它絕對是一種可能性:任何產生布爾值的東西都可以用作連接的條件。如果你分享了你正在嘗試解決的問題,那麼你是否需要這樣的連接會更容易。 – dasblinkenlight