首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SQL从多个表中获取公共值

使用SQL从多个表中获取公共值
EN

Stack Overflow用户
提问于 2017-06-14 12:32:43
回答 4查看 535关注 0票数 0

下面是每个表中的值

阅读-表名

student_id -学生身份证

代码语言:javascript
运行
复制
1
4
5
7
6
9
11

演讲桌

代码语言:javascript
运行
复制
9
10
12
13
14
15

写字表

代码语言:javascript
运行
复制
1
2
3
4
5
6
7
9

听表

代码语言:javascript
运行
复制
1
2
3
4
5
6
7
8
9

我的查询将返回学生id,这在4个表中很常见。例如,我的查询将返回以下示例:

对于所有表,只有9 'id是常见的,所以查询将返回计数为1。我尝试使用内部联接和一些不同的查询方式,但结果是,answer.Please出错了,任何人都会帮助我提前退出这个issue.Thanks。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-06-14 12:44:22

选择计数(不同的a.student_id)

从reading_table a

在speaking_table b上加入a.student_id=b.student_id

在writing_table c++上加入b.student_id=c.student_id

在listening_table上加入c.student_id=d.student_id d

票数 1
EN

Stack Overflow用户

发布于 2017-06-14 12:35:51

使用INTERSECT

代码语言:javascript
运行
复制
select count(1) 
from 
(
select student_id from Reading
INTERSECT 
select student_id from speaking 
INTERSECT 
..
) a

如果这些表中的任何一个都重复了student_id,如果您不想计数重复的表,那么

代码语言:javascript
运行
复制
select count(Distinct student_id) 
from 
(
select student_id from Reading
INTERSECT 
select student_id from speaking 
INTERSECT 
..
) a
票数 2
EN

Stack Overflow用户

发布于 2017-06-14 12:42:56

代码语言:javascript
运行
复制
SELECT t1.id FROM table1 t1
INNER JOIN table2 AS t2 ON t1.id = t2.id
INNER JOIN table3 AS t3 ON t1.id = t3.id
INNER JOIN table4 AS t4 ON t1.id = t4.id

这将返回所有4个表中常见的id。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44544919

复制
相关文章

相似问题

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