0
我有這樣的查詢使用左連接替代的子查詢不在IN中?
SELECT f.ACCOUNT_ID,
f.TGL,
p.ACCOUNT_EMAILADDRESS
FROM distributor_kokola.forecast f
inner join distributor_kokola.push_distributor p on p.ACCOUNT_ID = f.ACCOUNT_ID
where f.ACCOUNT_ID NOT IN(
select ACCOUNT_ID
from distributor_kokola.forecast
where DATE_FORMAT(TGL, "%Y-%m") = DATE_FORMAT(CURDATE(), "%Y-%m")
group by ACCOUNT_ID
)
group by f.ACCOUNT_ID;
該子查詢的工作,但要慢,所以我用左改變它加入,它工作得更快
SELECT f.ACCOUNT_ID,
f.TGL,
p.ACCOUNT_EMAILADDRESS
FROM distributor_kokola.forecast f
left join(
select ACCOUNT_ID
from distributor_kokola.forecast
where DATE_FORMAT(TGL, "%Y-%m") = DATE_FORMAT(CURDATE(), "%Y-%m")
group by ACCOUNT_ID
)subb on subb.ACCOUNT_ID = f.ACCOUNT_ID
inner join distributor_kokola.push_distributor p on p.ACCOUNT_ID = f.ACCOUNT_ID
group by f.ACCOUNT_ID;
不過,我的問題仍然含有錯誤的結果,
With Not IN,查詢1選擇NOT IN查詢2的位置。
如何獲取像NOT IN查詢中的左連接。
任何人都可以幫助我嗎?
謝謝。
嘿它的工作就像一個魅力,但我仍然沒有得到它,爲什麼「WHERE subb.ACCOUNT_ID是NULL」? – Uchsun
親愛的@Uchsun試着學習左邊的小表,然後你會很容易地得到 –
@Uchsun我已經更新了我的答案並添加了一個簡短的解釋。希望現在更清楚。 –