【发布时间】:2014-01-23 19:23:52
【问题描述】:
谁能帮我从 Oracle 的两个表中获取不匹配的行?
表:名称
Class_id Stud_name
S001 JAMES
S001 PETER
S002 MARK
表:课程
Course_id Stud_name
S001 JAMES
S001 KEITH
S002 MARK
输出
我需要将行显示为
CLASS ID STUD_NAME_FROM_NAME_TABLE STUD_NAME_FROM_COURSE_TABLE
---------------------------------------------------------------------
S001 PETER KEITH
我使用 Oracle 连接来获取不匹配的名称:
SELECT *
FROM Names, Course
WHERE Names.Class_id=Course.Course_id
AND Names.Stud_name<>Course.Stud_name
此查询返回重复行。
【问题讨论】:
-
stackoverflow.com/a/7971429/2806972 只需点击链接即可。你能得到答案吗
-
@Rams 如何确认 Peter 或 James 是 S001 名称表中正确的人?
-
不清楚你想要什么。从数据模型开始。为什么有一个类和一个课程,都使用相同的 id?表格是否应该显示相同的数据并且您正在寻找差异?课堂上所有未参加相应课程的学生?以及所有不在相应班级的学生?而不仅仅是列出错误的学生,您想列出每个班级/课程 ID 的错误学生吗?是这样吗?
-
如果返回重复行,请在您的查询中使用 distinct。