【问题标题】:How to get data from 2 tables without joining them?如何从 2 个表中获取数据而不加入它们?
【发布时间】:2011-02-23 17:30:42
【问题描述】:

我需要在 linq2sql 上编写以下查询的类似物:

SELECT A.Field1, B.Field2 FROM tableA A, tableB B

我该怎么做?

我会从这样的事情开始

from a in DBContext.tableA, 
...
select new {Field1=a.Field1, Field2=b.Field2};

但是我应该写什么而不是“...”?如何提及要链接的第二个表?

谢谢。

附:希望我清楚

【问题讨论】:

  • 您明白您确实在第一个查询中加入了表吗?这称为交叉连接,并且相对较少,因此请确保这是您真正需要的。如果您有两个 100 条记录的表,它将返回一个 10,000 条记录的结果集,因此您可以看到,如果它不是您需要的,那么这样做可能会非常糟糕。
  • 那些实际上不是一个表,而是一个每个返回 1 行的子查询,每行有 1 个字段。我需要的是制作 1 行有 2 个字段,而不是 2 行每个有 1 个字段

标签: .net sql linq-to-sql


【解决方案1】:

要交叉加入,请尝试

from a in DBContext.tableA
from b in DBContext.tableB
select new {Field1=a.Field1, Field2=b.Field2};

【讨论】:

    【解决方案2】:

    如果您从两个表中选择数据而不连接它们,您将得到一个交叉连接,即第一个表中的每一行与第二个表中的每一行连接。这可能不是你想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      相关资源
      最近更新 更多