我与Student.Department
和Departments.Id
,Student.Faculty
和Faculties.Id
之间存在关系。在我创建Departments.facultyId
和Faculties.Id
SELECT
*
FROM
Students sd
INNER JOIN Departments dp
ON sd.Department = dp.Id
INNER JOIN Faculties fd
ON sd.Faculty = fd.Id
在facultyId
表中添加Departments
列之前,我可以运行查询,但现在查询没有显示任何内容。
我是否还要为fd.Id
和dp.facultyId
之间的关系写一些内容?
答案 0 :(得分:1)
我只是复制你的数据库结构和关系。你的查询工作得很好。如果它不起作用,请确保您有数据支持您的查询。我的意思是在所有表格中,因为你正在离开教师和部门与学生表的连接。您可以在下面看到查询的结果。
SELECT * FROM student sd INNER JOIN department dp ON sd.dept = dp.id INNER JOIN faculty fd ON sd.fac = fd.id
为了澄清这一点,我有8名学生(每个部门2名),4名学员(每个学院2名)和2名学院。所以它有效。检查您的数据库是否具有满足查询约束的数据。
答案 1 :(得分:0)
首先,验证此连接:
SELECT
*
FROM
Students sd
LEFT JOIN Departments dp
ON sd.Department = dp.Id
如果看不到部门信息,请验证sd.Department是否具有正确的值。
对Faculties做同样的事情
SELECT
*
FROM
Students sd
LEFT JOIN Faculties fd
ON sd.facultyId = fd.Id
使用LEFT JOIN
,您将看到第一个表的所有记录,以及仅与第二个表匹配ON子句的记录。
最后检查新关系:
SELECT
*
FROM
Dapartments dp
LEFT JOIN Faculties fd
ON dp.facultyId = fd.Id