我在SQL上有點生疏,只需要一點幫助就可以了。需要SQL查詢幫助
比方說,我有應用程序,評分和管理員的表。這個想法是,每個管理員都可以標記每個應用程序的評級。評分有admin_id和application_id的外鍵。
對於查詢,我想選擇任何特定管理員尚未評級的所有應用程序。思考?
我在SQL上有點生疏,只需要一點幫助就可以了。需要SQL查詢幫助
比方說,我有應用程序,評分和管理員的表。這個想法是,每個管理員都可以標記每個應用程序的評級。評分有admin_id和application_id的外鍵。
對於查詢,我想選擇任何特定管理員尚未評級的所有應用程序。思考?
SELECT ap.application_id FROM application ap,rating r,admin ad WHERE ad.admin_id=r.admin_id AND ap.application_id NOT IN (SELECT DISTINCT application_id FROM rating) AND ad.admin_id=5;
這是否給出答案? 雖然沒有嘗試過,但我認爲它會..
簡單的LEFT JOIN
也許?它基本上只是返回所有行,其中不存在具有特定ID的管理員的評級。
SELECT a.*
FROM applications a
LEFT JOIN ratings r
ON a.application_id = r.application_id
AND r.admin_id = ?
WHERE r.admin_id IS NULL
我會寫一個小提琴,但SQLfiddle又累了。
這是在Navicat中測試的正確答案,但我只需要將它翻譯成laravel的Eloquent語法。 – mike
是的,這似乎很好 - 什麼是真正的問題? –
請給出你認爲你看起來像的SQL。 –
請發佈您的表格結構,樣本數據和樣本輸出。 –