Sql 使用before结果进行子选择(多行)

Sql 使用before结果进行子选择(多行),sql,db2,subquery,union,Sql,Db2,Subquery,Union,我已经找遍了我的问题,但没有找到合适的。 什么样的方法可以带来最终的结果 初始位置:使用的数据库:DB2 使用UNION进行查询,例如: SELECT 'HEAD', state, ID, Name, Country, '0' FROM TABLE_A WHERE state= '1' UNION SELECT 'POS', state, '0', '0', '0', Item FROM TABLE_B WHERE state= '1' 结果: 结果: +-------+ | state |

我已经找遍了我的问题,但没有找到合适的。 什么样的方法可以带来最终的结果

初始位置:使用的数据库:DB2

使用UNION进行查询,例如:

SELECT 'HEAD', state, ID, Name, Country, '0'
FROM TABLE_A
WHERE state= '1'
UNION
SELECT 'POS', state, '0', '0', '0', Item
FROM TABLE_B
WHERE state= '1'
结果: 结果:

+-------+ | state | +-------+ | 1 | +-------+ | 2 | +-------+ | 3 | +-------+ 最终结果应该是:


虽然从你的问题来看还不太清楚你到底想要什么。。。希望这是你需要的

SELECT 'HEAD', state, ID, Name, Country, '0'
FROM TABLE_A
WHERE state in (SELECT state FROM TABLE_C)
UNION
SELECT 'POS', state, '0', '0', '0', Item
FROM TABLE_B
WHERE state in (SELECT state FROM TABLE_C)

您的表_C是否与表_A有任何关系?将WHERE state='1'替换为WHERE state in SELECT state FROM TABLE_CThank you@Giorgos betgos,有时解决方案比预期的简单。 +-------+ | state | +-------+ | 1 | +-------+ | 2 | +-------+ | 3 | +-------+ +------+-------+-----+------+---------+------+ | TYPE | STATE | ID | Name | Country | Item | +------+-------+-----+------+---------+------+ | HEAD | 1 | 999 | Test | PL | 0 | +------+-------+-----+------+---------+------+ | POS | 1 | 0 | 0 | 0 | ABC | +------+-------+-----+------+---------+------+ | POS | 1 | 0 | 0 | 0 | DEF | +------+-------+-----+------+---------+------+ | POS | 1 | 0 | 0 | 0 | GHI | +------+-------+-----+------+---------+------+ | HEAD | 2 | 888 | Test2| DE | 0 | +------+-------+-----+------+---------+------+ | POS | 2 | 0 | 0 | 0 | XXX | +------+-------+-----+------+---------+------+ | POS | 2 | 0 | 0 | 0 | YYY | +------+-------+-----+------+---------+------+ | POS | 2 | 0 | 0 | 0 | GGG | +------+-------+-----+------+---------+------+ | HEAD | 3 | 555 | Test7| DE | 0 | +------+-------+-----+------+---------+------+ | POS | 3 | 0 | 0 | 0 | TTT | +------+-------+-----+------+---------+------+ | POS | 3 | 0 | 0 | 0 | SSS | +------+-------+-----+------+---------+------+ | POS | 3 | 0 | 0 | 0 | AAA | +------+-------+-----+------+---------+------+
SELECT 'HEAD', state, ID, Name, Country, '0'
FROM TABLE_A
WHERE state in (SELECT state FROM TABLE_C)
UNION
SELECT 'POS', state, '0', '0', '0', Item
FROM TABLE_B
WHERE state in (SELECT state FROM TABLE_C)