我有一个包含两个查询的表,我需要使用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 |文本
name1 | name2 | 1 | 2 | 0 |测试...
name2 | name1 | 1 | 0 | 5 |测试...
我想订购第1个会显示包含更多消息的备注,或者使用DESCending类型的其他单词。
这是我想要做的页面上的显示:
使用name2打开对话框。消息(5) 使用name1打开对话框。消息(2)
谢谢!
答案 0 :(得分: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