我怎样才能加入三个 SQL 和两个具有相同字段 ne 的 table
How can I join three SQL with two table having the same field ne
我有三张表
Student
-------------
id,
matno,
Surname,
faculty_id,
dept_id,
....
Faculty
------------
id,
name,
...
department
-------------------
id,
name,
....
我想 select 使用 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
假设 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 = ???
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";
尝试使用此左联接,以便至少所有学生都在结果集中,并且select其中的必填字段。
我有三张表
Student
-------------
id,
matno,
Surname,
faculty_id,
dept_id,
....
Faculty
------------
id,
name,
...
department
-------------------
id,
name,
....
我想 select 使用 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
假设 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 = ???
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";
尝试使用此左联接,以便至少所有学生都在结果集中,并且select其中的必填字段。