【问题标题】:MySQL UNION query from one table + ORDER BY来自一张表的 MySQL UNION 查询 + ORDER BY
【发布时间】:2010-04-15 21:34:01
【问题描述】:

我有一个包含两个查询的表,我需要使用 ORDER BY 对它进行降序排序。这是我无法正常工作的 MySQL 查询:

(SELECT `text` 
FROM `comments` 
WHERE user_fr='".$user."' && archive='1'
ORDER BY `is_new_fr` DESC) 
    UNION
(SELECT `text` 
FROM `message` 
WHERE user_to='".$user."' && archive='1' 
ORDER BY `is_new_to` DESC)

说明!

is_new_fr 和 is_new_to 计算新消息总数。

这是我的表格内容:

user_fr | user_to |存档 | is_new_fr | is_new_to|文字

名称1 |名称2 | 1 | 2 | 0 |测试...

名称2 |名称1 | 1 | 0 | 5 |测试...

我想下一个命令,让 1st 显示有更多消息的注释,或者使用 DESCending 类型的另一个单词。

这是我要在页面上做的显示:

使用名称 2 打开对话框。留言 (5) 打开带有 name1 的对话框。留言 (2)

谢谢!

【问题讨论】:

    标签: mysql union sql-order-by


    【解决方案1】:

    我知道的唯一方法是子查询:

    SELECT `text`
    FROM (
        SELECT `text`, `is_new_fr` AS `is_new`
        FROM `comments`
        WHERE user_fr = '".$user."'
        AND archive = '1'
    
        UNION
    
        SELECT `text`, `is_new_to` AS `is_new`
        FROM `message`
        WHERE user_to = '".$user."'
        AND archive = '1'
    ) ORDER BY `is_new` DESC
    

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多