使用联结表的查询交集

Posted

技术标签:

【中文标题】使用联结表的查询交集【英文标题】:Intersection of queries using junction table 【发布时间】:2014-03-29 05:44:44 【问题描述】:

我用谷歌搜索,但找不到合适的回复。

我有两张桌子 -

Students
(
   studentid int,
   studentname text
);

Clas-s-room 
(

  clas-s-roomid int

);

我创建了一个连接表,看起来像 -

Junction
(

  studentid int,
  clas-s-roomid int
);

在联结表中,两个值的组合是主键。我想找出哪些学生参加了第 1 和第 2 课,即他们在表格连接中有一个条目,上面写着同一个学生 ID 的教室 ID = 1 和教室 ID = 2。

我尝试在互联网上查找,但找不到实现此目的的方法。

我不是在寻找直接的答案。任何指向正确方向的指针也足够了。

谢谢!

【问题讨论】:

【参考方案1】:

伙计,你需要学习mysql Joins。您还可以找到 Graphical Representation 的 Joins。

SELECT std.studentid, std.studentname FROM Students std INNER JOIN Junction jnc WHERE jnc.clas-s-roomid IN(1,2)

【讨论】:

谢谢。我想我没有查到正确的术语。也感谢您的链接。一旦我有足够的声望,我就会支持你。

以上是关于使用联结表的查询交集的主要内容,如果未能解决你的问题,请参考以下文章

Mysql怎样求对同一个表的多个查询的交集

sql求两表的并集交集非交集差集结果集排序

SQL(Redshift)获取多个表的交集

SQL中两个表的交集

数据库Join查询:内联、左外联、右外联、取交集

用C语言求线性表交集