从查询和子查询返回字段

时间:2013-09-25 05:48:25

标签: sql db2

我想加入2个表但没有INNER JOIN但是使用嵌套查询。

我有两张桌子:

  • 表A:AField1,AField2,AField3,AField4
  • 表B:BField1,BField2,BField3

表之间的链接是AField1和BField1。

SELECT AField1, AField2, AField3
 FROM TableA
 WHERE AField1 IN (
    SELECT BField1 FROM TableB
    WHERE BField3 like 'E11%'
    );

我想在结果AField1,AField2,AField3,AField4 BField2,BField3

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

我相信这是你想要实现的目标 - 显然,这个解决方案取决于加入完整性。所以你必须确保PK匹配,以确保你没有得到不正当的加入。

SELECT a.AField1,
  a.AField2,
  a.AField3,
  bb.BField2,
  bb.BField3
FROM TableA a
WHERE EXISTS
  (SELECT 'X'
  FROM TableB b
  WHERE b.BField3 LIKE 'E11%'
  AND a.AField1 = b.BField1
  )
  (SELECT * FROM TableB WHERE BField3 LIKE 'E11%'
  ) bb
AND a.AField1 = bb.BField1

在SQL中,您可以为表格添加别名 - 请在此处详细了解:When to use SQL Table Alias