繁体   English   中英

将 2 个 SQL 查询合并为一个查询

[英]Combining 2 SQL queries into one single query

我需要有关 SQL 查询的帮助。 我正在尝试使用“IN”子句从多个 where 条件中获取结果。

这是查询:

SELECT ID,LOCALCODE,STRING 
FROM SSODEV.TRANSLATION 
WHERE STRINGKEY IN (SELECT DESCRIPTIONKEY 
                    FROM SSODEV.APPFIELD 
                    WHERE APPLICATIONID='a6e60e4d-e9ca-4a48-aa7f-0eb4d40ab260',
                    SELECT DISPLAYNAMEKEY 
                    FROM SSODEV.APPFIELD 
                    WHERE APPLICATIONID='a6e60e4d-e9ca-4a48-aa7f-0eb4d40ab260');

但是对于上述我得到一个错误

DB2 SQL 错误:SQLCODE=-104, SQLSTATE=42601, SQLERRMC=,;8-aa7f-0eb4d40ab260';INTERSECT, DRIVER=4.13.127`

我的目的是为以下 2 个查询获取单个查询

select * 
from SSODEV.TRANSLATION 
where stringkey = 'appField.e3c94305-84b4-4190-9040-244429a3c0f0.description'

select * 
from SSODEV.TRANSLATION 
where stringkey = 'appField.e3c94305-84b4-4190-9040-244429a3c0f0.name'

查询 1 和查询 2 的“stringkey”来自表 SSODEV.APPFIELD,其列名称为 DISPLAYNAMEKEY 和 DESCRIPTIONKEY。 因此,它们也必须被提取

你可以试试这个查询:

select *
from SSODEV.TRANSLATION
where stringkey in ('appField.e3c94305-84b4-4190-9040- 
244429a3c0f0.description',
                    'appField.e3c94305-84b4-4190-9040-244429a3c0f0.name'
                   )

@Suraj 关注您的评论:然后您可以尝试

SELECT ID,LOCALCODE,STRING 
FROM SSODEV.TRANSLATION 
WHERE STRINGKEY IN ((SELECT DESCRIPTIONKEY 
                FROM SSODEV.APPFIELD 
                WHERE APPLICATIONID in('a6e60e4d-e9ca-4a48-aa7f-0eb4d40ab260','a6e60e4d-e9ca-4a48-aa7f-0eb4d40ab260')));

或者你可以尝试加入第二个表:

SELECT ID,LOCALCODE,STRING 
FROM SSODEV.TRANSLATION 
left join SSSODEV.APPFIELD on SSODEV.APPFIELD.DESCRIPTIONKEY = SSODEV.TRANSLATION.STRINGKEY
WHERE APPLICATIONID IN ('a6e60e4d-e9ca-4a48-aa7f-0eb4d40ab260','a6e60e4d-e9ca-4a48-aa7f-0eb4d40ab260');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM