首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一个表中选择另一个表中不存在的三次

从一个表中选择另一个表中不存在的三次
EN

Stack Overflow用户
提问于 2013-03-22 14:18:05
回答 5查看 73关注 0票数 1

我有一张桌子,里面装满了学生们提交的不同的项目。每个项目应由三个不同的评判者来评判。因此,还有另一个分数表,包括项目和司法程序。我正在尝试编写一个查询,它可以选择任何尚未被评测过三次的项目。

这是一些样品表..。

项目

代码语言:javascript
复制
projectid | projectname
-----------------------
9         | Kintetics
11        | Volcano
15        | Robots
22        | Oceanlife

分数

代码语言:javascript
复制
scoreid (AI) | projectid | judgeid | score
------------------------------------------
1            | 9         | 15      | 5
2            | 11        | 15      | 18
3            | 9         | 23      | 12
4            | 11        | 23      | 11
5            | 9         | 45      | 19
6            | 22        | 15      | 3

我希望这个查询返回项目11、15和22,因为这三个项目还没有分配给他们三个评判。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-22 14:19:53

代码语言:javascript
复制
SELECT  a.ProjectID, a.ProjectName
FROM    Projects a
        LEFT JOIN Scores b
            ON a.ProjectID = b.ProjectID
GROUP   BY a.ProjectID, a.ProjectName
HAVING  COUNT(a.ProjectID) < 3
  • SQLFiddle演示

若要获得更多关于联接的知识,请访问以下链接:

  • SQL连接的可视化表示

输出

代码语言:javascript
复制
╔═══════════╦═════════════╗
║ PROJECTID ║ PROJECTNAME ║
╠═══════════╬═════════════╣
║        11 ║ Volcano     ║
║        15 ║ Robots      ║
║        22 ║ Oceanlife   ║
╚═══════════╩═════════════╝
票数 4
EN

Stack Overflow用户

发布于 2013-03-22 14:25:13

另一种选择:

代码语言:javascript
复制
SELECT  a.ProjectID, a.ProjectName
FROM    Projects a
LEFT JOIN (select ProjectID, count(*) counted from Scores) b
       ON a.ProjectID = b.ProjectID
WHERE COALESCE(b.counted,0) < 3
票数 1
EN

Stack Overflow用户

发布于 2013-03-22 14:26:38

代码语言:javascript
复制
SELECT COUNT(scores.id) AS score_count, projects.* 
FROM scores, projects
WHERE scores.projectid = projects.id
GROUP BY projects.id
HAVING score_count > 2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15572587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档