当前位置: 代码迷 >> Sql Server >> SQL语句请问?
  详细解决方案

SQL语句请问?

热度:45   发布时间:2016-04-24 09:24:47.0
SQL语句请教???
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)
  相关解决方案