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

时间:2018-10-28 11:02:12

标签: mysql sql php-7

我有三个桌子

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

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

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

我想使用 matno 选择学生的详细信息,并使用faculty_id和dept_id来选择教师姓名和部门名称。我尝试了所有我能想到的SQL JOIN组合,但只得到一个名称字段。

如果尝试使用其他语句来获取查询,我在第二个查询中也会得到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

2 个答案:

答案 0 :(得分:2)

假设faculty_iddept_idFacultydepartment表中的外键,此查询应为您提供所需的结果(将???替换为所需的搜索值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 = ???

答案 1 :(得分:0)

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";

尝试使用这种左联接,以便至少所有学生都将进入结果集并从中选择必填字段。