mysql多表联合查询

MySQL数据库,Python开发,怎么写sql才能将表1和表2已结果的形式返回

img


SELECT IFNULL(a,a1) a,b,c FROM 
(

SELECT test1.a,test1.b,test2.a AS a1, test2.c FROM test1 LEFT JOIN test2 ON test1.a = test2.a
UNION 
SELECT test1.a,test1.b,test2.a AS a1, test2.c FROM test1 RIGHT  JOIN test2 ON test1.a = test2.a

) AS ALL_

或

SELECT a,GROUP_CONCAT(b) b, GROUP_CONCAT(c) c FROM 

(

SELECT a,b,null as c FROM test1 
UNION ALL
SELECT a,null as b, c FROM test2

) AS ALL_


GROUP BY a

with T1 AS (
SELECT 1 AS A,'B1' B FROM dual UNION
SELECT 2 AS A,'B2' B FROM dual ),
T2 AS (
SELECT 1 AS A,'C1' B FROM dual UNION
SELECT 3 AS A,'C3' B FROM dual
)
SELECT CASE WHEN T1.A IS NULL THEN T2.A ELSE T1.A END A
,T1.B,T2.B
FROM T1
FULL JOIN T2
ON T1.A = T2.A
ORDER BY T1.A