2 回答

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用NOT EXISTS:
SELECT * FROM date1
UNION
SELECT d2.* FROM date2 d2
WHERE NOT EXISTS (SELECT 1 FROM date1 d1 WHERE d1.id = d2.id)
如果您不想排除重復(fù)的行或者每個(gè)表中UNION ALL沒(méi)有重復(fù)的行,也可以更改為,這會(huì)更有效。id

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
使用聯(lián)合并將其包裝在帶有聚合的主查詢中可能是您想要的。
DROP TABLE IF EXISTS T,T1;
CREATE TABLE T(ID INT, COUNT1 INT);
CREATE TABLE T1(ID INT, COUNT1 INT);
INSERT INTO T VALUES (1,567),(2,20);
INSERT INTO T1 VALUES(1,565),(3,20);
select tid ,
max(case when tcount1 is not null then tcount1 else t1count1 end) cnt
from
(select id tid,count1 tcount1,null t1count1 from t
union
select id tid,null tcount1,count1 from t1
) s
group by tid;
+------+------+
| tid | cnt |
+------+------+
| 1 | 567 |
| 2 | 20 |
| 3 | 20 |
+------+------+
3 rows in set (0.001 sec)
- 2 回答
- 0 關(guān)注
- 208 瀏覽
添加回答
舉報(bào)