【发布时间】:2008-11-16 23:14:03
【问题描述】:
我有一个必须从中获取数据的主表。我有一个左外连接,其中字段将匹配 40% 的时间。然后我有另一个连接,我需要将表 A 中的数据与之匹配。
这是伪代码中的 SQL。此查询不起作用。
-- 这是我想做但不起作用的部分。 AND H.COL3 = A.STATE????
我正在使用 IBM DB2。
SELECT DISTINCT
APP_NO as app_no,
A.STATE as state
...
... Fields
...
FROM
TABLE_A A
LEFT OUTER JOIN
TABLE_B HIST
ON
HIST.COL1 = A.COL1
, TABLE_C B
LEFT OUTER JOIN
TABLE_D H
ON
H.COL2 = B.COL2
-- This is the part I want to do but doesn't work.
AND
H.COL3 = A.STATE????
WHERE
A.BRANCH = 'Data'
【问题讨论】:
-
为什么不起作用?你遇到了什么错误?
-
在 DB2 中,我收到以下错误。如果我删除有问题的行,那么它可以工作。错误:SQL0338N 与 JOIN 运算符或 MERGE 语句关联的 ON 子句无效。 SQLSTATE=42972(状态:42972,本机代码:FFFFFEAE)
-
请通过此链接。 techpint.com/programming/how-sql-joins-works。我已经演示了一个包含脚本的示例。它包含完全相同的案例。