【发布时间】:2013-01-22 14:41:15
【问题描述】:
我有 2 个表,每个表都有相同的字段,基本上包含
table1.ItemCode table1.Qty
table2.ItemCode table2.Qty
我正在通过以下命令从 sql 中查询这两个表
SELECT c.Code ,
t1.Code ,
t1.Qty ,
t2.Code ,
t2.Qty
FROM ( SELECT Code
FROM dbo.Table1
UNION
SELECT Code
FROM dbo.Table2
) c
LEFT OUTER JOIN dbo.Table1 t1 ON c.Code = t1.Code
LEFT OUTER JOIN dbo.Table2 t2 ON c.Code = t2.Code
WHERE t1.Code IS NULL
OR t2.Code IS NULL
OR t1.Qty <> t2.Qty
此查询为我提供了两个表中都存在的项目代码
只有不同的数量
例如,如果 item: x 有 2 个并且在第二个表中 Item x 有 4 个 该项目将显示为:x 2 4
但是,如果项目 x 的数量为 2,并且在第二个表中的数量也相同 该项目不会出现在结果中
问题在于,在我的情况下,这 2 个表是我的 asp.net 中的两个 数据表
项目
我需要在这两个数据表上执行相同的查询
如何做到这一点,或者他们是否有任何其他可能的解决方案可以从这两个中获得我的结果
数据表
【问题讨论】:
-
不是答案,但从将 DataTables 转换为 IEnumerable
( dt.Rows.Cast (); ) 开始,您应该能够使用 linq 进行查询。 -
@SteveB 我没有尝试过,因为我知道您需要 linq 来查询数据表,但我是开发新手,我不熟悉语言
-
请至少显示一些代码。我们不知道您如何构建表格等...
-
Check this link,可能会有所帮助
标签: asp.net sql linq linq-to-objects