【发布时间】:2011-01-06 07:47:40
【问题描述】:
我继承了一个设计不完全优化的数据库,我需要处理一些数据。让我对我必须做的事情做一个更常见的类比:
假设我们有一个 Student 表,一个 StudentClass 表记录了他参加的所有课程,还有一个 StudentTeacher 表存储了教过这个学生的所有老师。是的,我知道这是一个愚蠢的设计,将教师存储在 Class table 上会更有意义 - 但这就是我们正在使用的。
我现在想清理数据,我想找到一个学生有老师但没有班级,或有班级但没有老师的所有地方。 SQL 因此:
select *
from StudentClass sc
full outer join StudentTeacher st on st.StudentID = sc.StudentID
where st.id is null or sc.id is null
你如何在 Linq 中做到这一点?
【问题讨论】:
-
注意:这并不是真正的完全外连接——因为您想排除内连接成功的行。我只是提到这一点,因为这是“完全外部连接 linq”的热门搜索结果 - 所以如果这是某人正在寻找的内容,那么答案可能不正确
标签: c# linq linq-to-sql outer-join full-outer-join