【问题标题】:Linq query for joining three tables用于连接三个表的 Linq 查询
【发布时间】:2012-10-06 04:14:40
【问题描述】:

我有三个表table1(主表)、table2、table3。

  • table1 包含 table1Id
  • table2 和 table3 包含 table2Id、table2RoleId、table3Id、table3RoleId。

table1Id的值也一样,table2Id和table3Id有多个记录但是table2RoleId和table3RoleId不同。

我想将 table1 与 table2 和 table3 连接起来显示 Table2RoleId 和 Table3RoleId 必须根据 Table1Id 显示

我怎样才能做到这一点?

谢谢

【问题讨论】:

  • 举个例子:table1Id:1,table2Id:1,table2RoleId:ab,table2Id:1,table2RoleId:cd,table3Id:1,table3RoleId:gh,table3Id:1,table2RoleId:ij.Now根据 table1Id 显示 table2RoleId 和 table3RoleId。

标签: asp.net-mvc linq visual-studio


【解决方案1】:

我忽略了您的问题内容,​​并会向您展示 linq 中的左连接示例

var result = from x in table1 join y in table2 
             on x.tableId1 equals y.tableId1 
             join z in table3 on x.tableId1 equals z.tableId1 
             Select new {// your return fields}

【讨论】:

  • 我只有一个 tableId1 值,那么它工作正常,但如果我有多个 table1Id,它会显示所有记录中的所有 RoleId。
  • 您能否展示您所写的内容,表明您的查询适用于一个tableId1
  • var table2query = (from j in table2 join s in table1 on j.table2Id 等于 s.table1Id select new { industryid = j.table1Id, industryusrid = s.table2RoleID, }).ToList();同样,我为 table3 写了
  • 您可以使用 group by 按 table1id 对记录进行分组,然后加入您的表格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 2015-09-23
相关资源
最近更新 更多