假設我有表A,在B ID是唯一的,但表B中,ID不是唯一的使用不同行的加入MySQL的
我想SELECT DISTINCT ID
查詢1:
SELECT DISTINCT ID從一個LEFT JOIN b b ON a.ID = B.ID WHERE ...
查詢2:
SELECT DISTINCT ID從WHERE ID IN(SELECT d ISTINCT ID FROM B,其中...)
或
SELECT DISTINCT ID從一個LEFT JOIN(SELECT DISTINCT ID FROM B)B關於a.ID = B.ID WHERE ...
最終的結果是相同的,但
什麼查詢1發生的臨時表的空間更從表B中多行會與重複ID
在查詢2我能夠優化空間和進一步的處理因爲它將限制所有不同ID的行
是否有任何方式使用連接和避免子查詢來使用表B中的DISTINCT行?
其實我有甚表C中,我將與此一起,所以我需要照顧參加第二次參加正與臺還加入C.
嘗試'GROUP BY a.ID' – Wolph
注意:查詢1和2的結果不必相同,因爲您使用的是'LEFT JOIN',所以查詢1也會返回表B中不匹配的行。 –
我已經在問題中進行了編輯,我們假設我們基於我們爲了避免子查詢而放置 – user2368055