【问题标题】:Need SQL Query Assistance需要 SQL 查询协助
【发布时间】:2014-06-22 13:22:55
【问题描述】:

我对 SQL 有点生疏,只是需要一点帮助来思考这个问题。

假设我有应用程序、评级和管理员的表格。这个想法是每个管理员都可以标记他们对每个应用程序的评级。评级具有 admin_id 和 application_id 的外键。

对于查询,我想选择任何特定管理员尚未评级的所有应用程序。想法?

【问题讨论】:

  • 是的,看起来不错 - 实际问题是什么?
  • 请展示您认为的 SQL 的样子。
  • 请发布您的表结构、示例数据和示例输出。

标签: mysql sql join laravel


【解决方案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 又累了。

【讨论】:

  • 这是正确的答案,在 Navicat 中测试过,但我只需要把它翻译成 laravel 的 Eloquent 语法。
【解决方案2】:
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;

这是否给出了答案? 虽然没有自己尝试过,但我认为它会......

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多