DB2SQL:如何向where子句添加子select语句?

i7uaboj4  于 2023-04-06  发布在  DB2
关注(0)|答案(2)|浏览(185)

所以我有一个查询如下:

SELECT a.abc, b.xyz, c.yup
from coin  a, true  b, yes  c
where a.id = b.id
and b.id = c.id
and a.access_code in 
(select ax.acess_code from coin ax, Parameter b
where ax.flow_id = b.flow_id
and b.start_date = '2022-06-21'
and b.result = 'B')

**然而,我得到了这个错误:***SQL错误[42601]:在“”之后发现意外的令牌“”。预期的令牌可能包括:”

带有ur”.. SQL代码= -104,SQL状态=42601,驱动程序=4.21.29*

有什么想法吗

我试图将这两个查询链接在一起,但没有成功。请注意,表'coin'在主查询和子查询中是同一个表。

eqqqjvef

eqqqjvef1#

您应该使用不同的别名并开始使用JOIN
还可以使用INNER JOIN代替IN子句

SELECT a.abc, b.xyz, c.yup
from coin  a
INNER JOIN  true  b ON a.id = b.id
INNER JOIN  yes  c ON b.id = c.id
INNER JOIN 
(select ax.acess_code 
from coin ax
INNEr JOIN  Parameter bx
ON  ax.flow_id = bx.flow_id
WHERE bx.start_date = '2022-06-21'
and bx.result = 'B') d ON a.access_code = d.acess_code
xzlaal3s

xzlaal3s2#

如果B.start_date是date类型,则尝试b.start_date = date('2022 -06- 21')

相关问题