mysql - 使用 MySQL 连接三个表

标签 mysql

我有三个名为

的表
**Student Table**
-------------
id    name
-------------
1     ali
2     ahmed
3     john
4     king

**Course Table**
-------------
id    name
-------------
1     physic
2     maths
3     computer
4     chemistry

**Bridge**
-------------
sid    cid
-------------
1     1
1     2
1     3
1     4
2     1
2     2
3     3
3     4
4     1
4     2

现在显示学生姓名和他所学的类(class)名称,

**Result**
---------------------------
Student        Course
---------------------------
ahmed         physic
ahmed         maths
ahmed         computer
ahmed         chemistry
ali           physic
ali           maths
john          computer
john          chemistry
king          physic
king          maths

我构建以下查询

select s.name as Student, c.name as Course from student s, course c join bridge b on c.id = b.cid order by s.name

但它没有返回所需的结果...

如果我想找到谁是经理而不是其他人,那么标准化形式是什么:

**employee**
-------------------
id        name
-------------------
1         ali
2         king
3         mak
4         sam
5         jon

**manage**
--------------
mid      eid
--------------
1         2
1         3
3         4
4         5

并且想要得到这个结果:

**result**
--------------------
Manager      Staff
--------------------
ali          king
ali          mak
mak          sam
sam          jon

最佳答案

使用 ANSI 语法,如何连接表会更加清晰:

SELECT s.name as Student, c.name as Course 
FROM student s
    INNER JOIN bridge b ON s.id = b.sid
    INNER JOIN course c ON b.cid  = c.id 
ORDER BY s.name 

关于mysql - 使用 MySQL 连接三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41636608/

相关文章:

mysql - 编写基于差异的日期查询的更好方法

MySQL根据分数字段选择排名

PHP 和英雄联盟 API - 如何在唯一命名的 JSON 数组中定义变量以插入 MySQL 数据库?

mysql - MySQL最好的双重替代品是什么?

mysql - SQL如何计算每月有x笔交易的信用卡数量

php - UTF-8贯穿始终

mysql - 按重复的 Secret_id 排序

php - 如何获取查询次数最少的帖子列表和关联的标签

php - mysql连接数过多是什么原因造成的

mysql - 显示 View sql 时出错