如何将三个sql与两个具有相同字段的表连接起来

bqujaahr  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(436)

我有三张table

Student
-------------
id,
matno,
Surname,
faculty_id,
dept_id,
....

Faculty
------------
id,
name,
...

department
-------------------
id,
name,
....

我想用matno加上教员的名字和部门的名字来选择学生的详细信息。我尝试了所有我能想到的sql连接组合,但只得到一个name字段。
另外,如果尝试使用不同的语句获取查询,则在第二个查询中会得到null。

编辑

我的sql查询是

SELECT * FROM student INNER JOIN faculty ON faculty.id = student.faculty_id LEFT JOIN department ON  department.id = student.dept_id WHERE student.matno = 1104
mnowg1ta

mnowg1ta1#

SELECT * FROM 
STUDENT S
LEFT JOIN FACULTY F
ON S.FACULTY_ID = F.ID
LEFT JOIN DEPARTMENT D
ON S.DEPT_ID = D.ID WHERE S.MATNO = "$your_matno";

尝试使用这个左连接,这样至少所有学生都会在结果集中,并从中选择所需的字段。

lp0sw83n

lp0sw83n2#

假设 faculty_id 以及 dept_id 外键是否插入 Faculty 以及 department 表中,此查询将提供所需的结果(替换 ??? 所需的搜索值为 matno ):

SELECT s.matno, s.surname, f.name AS faculty, d.name AS department
FROM Student s
JOIN Faculty f ON f.id = s.faculty_id
JOIN department d ON d.id = s.dept_id
WHERE matno = ???

相关问题