我在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。 –
请发布您的表格结构,样本数据和样本输出。 –