2014-05-06 236 views
-1

我在SQL上有點生疏,只需要一點幫助就可以了。需要SQL查詢幫助

比方說,我有應用程序,評分和管理員的表。這個想法是,每個管理員都可以標記每個應用程序的評級。評分有admin_id和application_id的外鍵。

對於查詢,我想選擇任何特定管理員尚未評級的所有應用程序。思考?

+6

是的,這似乎很好 - 什麼是真正的問題? –

+0

請給出你認爲你看起來像的SQL。 –

+1

請發佈您的表格結構,樣本數據和樣本輸出。 –

回答

0
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; 

這是否給出答案? 雖然沒有嘗試過,但我認爲它會..

1

簡單的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又累了。

+0

這是在Navicat中測試的正確答案,但我只需要將它翻譯成laravel的Eloquent語法。 – mike