怎么查询。对这个比较陌生啊

楠小南 2016-04-01 04:21:07
我有两个 datatable id 列字段一模一样的。
yu 和dt 分别是一个表
用 Dim test = From sa In yu From sb In dt Where sb.Item(0) = sa.Item(0) Select sb 可以查询出相同 id 的
但 Dim test = From sa In yu From sb In dt Where sb.Item(0) <> sa.Item(0) Select sb 就不行了。貌似重复的说。
是不是我写错了!
...全文
174 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘欣的博客 2016-04-02
  • 打赏
  • 举报
回复

var query = from a in db.MM_STORAGE_TYPE
                        join b in db.MM_SAVETYPE on a.STORAGE_TYPE equals b.type
                                where
                                    (
                                    a.WERKS.Contains(DropDownList_WERKS.SelectedItem.Value) &&
                                    a.LGORT.Contains(DropDownList_LGORT.SelectedItem.Value) 
                                    )
                                select new
                                    {
                                    STORAGE_TYPE = a.STORAGE_TYPE,
                                    STORAGE_TYPE_NAME = b.descride,
                                    NEGAT = b.negetive                                    
                                    };



 var other = from b in db.MM_SAVETYPE
                        where !(from t1 in query select t1.STORAGE_TYPE).Contains(b.type)
                        select b;    

other.ToList()

先查一个var 虚对象出来,再用结果加入第二个查询查不同的数据出来, other.ToList()是到数据库取数据了。。。。。
threenewbee 2016-04-01
  • 打赏
  • 举报
回复
a.except(b).union(b.except(a))
  • 打赏
  • 举报
回复
不管你用sql还是linq,关键是都要懂得“关系计算”的基本理论,起码知道关系连接运算跟笛卡儿积运算的区别。其实这说明你学习sql时没学到真东西。
  • 打赏
  • 举报
回复
你说你会sql?我觉得并不可信。如果你在sql语句中写成了笛卡儿积形式,结果就是“这样”的。因此你其实也不太懂sql,并不知道自己写的sql。
楠小南 2016-04-01
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
不要用不等来获取不同的 你这个应该是要用是否包含来判断 对比成sql就是not exists(select 1 from yu where xxx)
对哦! 为什么用SQL 就会 用这个就不会呢。 笨死了
  • 打赏
  • 举报
回复
不要用不等来获取不同的 你这个应该是要用是否包含来判断 对比成sql就是not exists(select 1 from yu where xxx)
楠小南 2016-04-01
  • 打赏
  • 举报
回复
引用 楼主 q363186 的回复:
我有两个 datatable id 列字段一模一样的。 yu 和dt 分别是一个表 用 Dim test = From sa In yu From sb In dt Where sb.Item(0) = sa.Item(0) Select sb 可以查询出相同 id 的 但 Dim test = From sa In yu From sb In dt Where sb.Item(0) <> sa.Item(0) Select sb 就不行了。貌似重复的说。 是不是我写错了!
sorry ! 就是说 我有两个 表 id 列字段一模一样的。 怎么查询他们不重复的记录 例如 表1 id 1 2 表2 id 1 2 3 表1 是固定的 不变 的 两个表相同的记录就不要了。 只要表2有而表1没有的
q107770540 2016-04-01
  • 打赏
  • 举报
回复
没听懂你说什么

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧