添加新关系后,查询代码不显示任何内容

时间:2016-11-04 23:38:01

标签: mysql sql

我与Student.DepartmentDepartments.IdStudent.FacultyFaculties.Id之间存在关系。在我创建Departments.facultyIdFaculties.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.Iddp.facultyId之间的关系写一些内容?

Designer

2 个答案:

答案 0 :(得分:1)

我只是复制你的数据库结构和关系。你的查询工作得很好。如果它不起作用,请确保您有数据支持您的查询。我的意思是在所有表格中,因为你正在离开教师和部门与学生表的连接。您可以在下面看到查​​询的结果。

SELECT * FROM student sd INNER JOIN department dp ON sd.dept = dp.id INNER JOIN faculty fd ON sd.fac = fd.id

enter image description here

为了澄清这一点,我有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