我们在其中一个表中发现了错误的数据,我们希望识别它们。
我们有4张桌子:
它们之间的关系如下
由于一些学生的名字不同,虽然他们是不同身份的不同人,但我们发现有些学生被分配到不同地点的不同学校
你可以在屏幕截图中看到“Adam Mike”被分配到3个不同的学校,第二和第三行都可以,因为学校的位置是相同的但是第一行不合适因为学校在不同的位置。
所以我希望有一个查询返回分配到不同位置的所有学生,以便我可以手动纠正它们。
谢谢
修改
在我的上一个问题Find duplication in multi tables 学生不能在不同的学校。
更清楚。
在此屏幕截图中,您会看到所有带“?”的记录不正确,因为位置不同。 所以迈克不能在美国和英国的学校 另一方面,JIM在不同的学校,但在同一地点,所以这是好的 现在我想查找学生在不同地点有记录的所有记录。
答案 0 :(得分:1)
尝试类似的东西。它返回具有多个唯一位置的学生。
SELECT ss.student_id
FROM school s
JOIN school_student ss
ON s.id = ss.school_id
GROUP BY ss.student_id
HAVING COUNT(DISTINCT s.location_id) > 1