亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Mysql union 按行排除重復條目

Mysql union 按行排除重復條目

PHP
慕無忌1623718 2023-07-01 17:43:38
我有這樣的疑問:SELECT * FROM `date1` UNION SELECT * FROM `date2` ORDER BY (count1+count2) DESC我需要按“ID”列排除重復條目。我可以用 UNION 來做這個嗎?更新:表格1+---------+--------+| id      | count1 |+---------+--------+| 112337  | 567    |+----+-------------+表2+---------+--------+| id      | count1 |+---------+--------+| 112337  | 565    |+----+-------------+我只想顯示第一個“id”數據。
查看完整描述

2 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

您可以使用NOT EXISTS:


SELECT * FROM date1 

UNION

SELECT d2.* FROM date2 d2

WHERE NOT EXISTS (SELECT 1 FROM date1 d1 WHERE d1.id = d2.id)

如果您不想排除重復的行或者每個表中UNION ALL沒有重復的行,也可以更改為,這會更有效。id


查看完整回答
反對 回復 2023-07-01
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

使用聯合并將其包裝在帶有聚合的主查詢中可能是您想要的。


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)


查看完整回答
反對 回復 2023-07-01
  • 2 回答
  • 0 關注
  • 191 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號