假设我们有两个表A和B.
A保持4行,B保持3行。 在表A和表B中,几个列值相同,因此有助于映射。
我想构建一个查询,该查询将获取表B下的所有详细信息,并将从表A中获取不在表A中的记录。
String expr0 = "//node[@lat='53.0705997'][@lon='8.7818627']/tag["+i+"]/@v";
所以我需要一个可以得到结果的查询
Table A
001 ABC Tango
002 XYZ Alpha
003 PQR Beta
004 DEF Gamma
Table B
001 ABC Tango Delhi
002 XYZ Alpha Mumbai
003 PQR Beta Pune
前三行来自表B,后四行来自表A,因为特定数据不在表B中。
如果有人可以为我建立一个查询,请告诉我。
答案 0 :(得分:0)
SELECT *, NULL AS Field4
FROM TableA
WHERE Field1 NOT IN (SELECT Field1 FROM TableB)
UNION ALL
SELECT *
FROM TableB
答案 1 :(得分:0)
只是为了踢,如果你想使用连接解决方案:
SELECT CASE WHEN TableB.Field1 IS NULL THEN TableA.Field1 ELSE TableB.Field1 END AS Field1
, CASE WHEN TableB.Field1 IS NULL THEN TableA.Field2 ELSE TableB.Field2 END AS Field2
, CASE WHEN TableB.Field1 IS NULL THEN TableA.Field3 ELSE TableB.Field3 END AS Field3
, TableB.Field4
FROM TableB
FULL JOIN TableA ON TableA.Field1 = TableB.Field1
答案 2 :(得分:0)
执行FULL OUTER JOIN
:
select b.col1, b.col2, b.col3, a.col3
from b
FULL OUTER JOIN a on a.col1 = b.col1 and a.col2 = b.col2