mysql - 避免使用 UNION 和 ORDER BY 的 mysql 查询中出现重复

标签 mysql duplicates

我有两个表,假设 table1 和 table2 具有公共(public)列 id 和 update_date。我希望根据最新的 update_date 按降序排列获取 id 和 update_date 。我一起使用了“union”和“order by”,这按 update_date 的降序给出了结果,但有重复的 id,我不知道如何摆脱。

我的查询是这样的,

(select id,update_date from table1 where [condition])
UNION
(select id,update_date from table2 where [condition])
order by update_date desc;

我可以通过添加 select different id from (above query) as temp 来消除重复的 id;但问题是我也需要 update_date。

任何人都可以建议如何删除重复项并仍然获取 id 和 update_date 信息。

最佳答案

假设您希望从重复项中获得最新更新,则此更新应该有效:

SELECT id, max(update_date) AS last_update
FROM
  ( (select id,update_date from table1 where [conditions])
     UNION
    (select id,update_date from table2 where [conditions]) ) both_tables
GROUP BY id
ORDER by last_update DESC

关于mysql - 避免使用 UNION 和 ORDER BY 的 mysql 查询中出现重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347742/

相关文章:

mysql - 为除一个/几个表之外的所有表授予 [几乎] 所有 mySQL 权限

android - 如何在 Android 中编写 SQL 查询?

php fopen() 使用 Symfony/Component/Process 类在同一进程中创建的文件没有这样的文件或目录

mysql - 从字符串中删除连续的重复字符

node.js - Mongojs:忽略重复对象插入

mysql - 计算配置单元中分区表中的不匹配行

mysql - 当条件位于不同行和列时的 CASE 语句

ms-access - .FindFirst VBA MS Access 函数出现意外行为 : . NoMatch 始终返回 true

python - 聚合 pandas 中的行重复(游程长度)

php - 在 mysql 列中搜索重复项并在 while 循环中为变量添加后缀