0

我正在处理左连接查询,但我没有得到预期的结果。我一遍又一遍地搜索,但无法找到导致此问题的原因。当我执行以下代码时,它返回 LEFT INNER JOIN 的结果(仅左侧的记录与右侧的项目匹配)。我试图指定 LEFT OUTER 没有成功。我错过了一些简单的东西吗?

var records = ORMExecuteQuery("SELECT new map(inst.id AS installationId,
                                                inst AS installation,
                                                uaa.id AS id,
                                                uaa.permission AS permission,
                                                uaa.app AS app)
                                            FROM Installation AS inst, 
                                                LEFT JOIN inst.userApplicationAccesses AS uaa
                                                    WITH uaa.user.userId = ?", [Arguments.userId]);
4

1 回答 1

0

好的,你的左连接很奇怪。您将加入一列,而不是表,并且该列是您的第一个表的一部分(您甚至引用 as 名称)。

您的外部联接应该类似于:

Select *
From Table_A as A
Left Outer Join Table_B as B on B.ID = A.ID

是的,Table_A 和 Table_B 都可以是同一张表,但该表应该列出两次。

于 2012-07-23T18:20:35.503 回答