Table1:
Id A B C
1 1 2 3
2 4 5 6
Table2:
Id D E F
2 7 8 9
3 10 11 12
Table3:
Id A B C D E F
1 1 2 3
2 4 5 6 7 8 9
3 10 11 12
请问,想通过表1和2得到表3的SQL语句如何写???
------解决思路----------------------
SELECT ISNULL(t1.id, t2.id) id,
t1.A, t1.B, t1.C,
t2.D, t2.E, t2.F
FROM table1 t1
FULL JOIN table2 t2
ON t1.id = t2.id
------解决思路----------------------
SELECT DISTINCT TMP.id
Table1.A, Table1.B, Table1.C,
Table2.D, Table2.E, Table2.F
FROM (
SELECT DISTINCT A.id AS id FROM Table1 AS A
UNION ALL
SELECT DISTINCT B.id AS id FROM Table2 AS B
) AS TMP
LEFT JOIN Table1
ON TMP.id = Table1.id
LEFT JOIN Table2
ON TMP.id = Table2.id
------解决思路----------------------
WITH t1(id,a,b,c)
AS(
SELECT 1, 1, 2, 3 UNION
SELECT 2, 4, 5, 6
)
,t2(id,d,e,f)
AS
(
SELECT 2, 7, 8, 9 UNION
SELECT 3, 10, 11, 12
)
SELECT t1.*,t2.d,t2.e,t2.f
FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT *,NULL,NULL,NULL
FROM t2 WHERE NOT EXISTS(SELECT 1 FROM t1 WHERE t1.id=t2.id)