php - 在带有 UNION 关键字的 mysql 查询中使用按 DESC 或 ASC 排序

标签 php mysql sql select

在我的页面中,我使用以下查询来显示从当前时间开始到旧时间的选项。但它选择从旧时间选择到当前时间选择的行。

我想显示从当前时间到旧时间的选项

$result=mysql_query("(SELECT choice_id,poll_id,choicecreationtime from je_addchoice ORDER BY choicecreationtime DESC)
    UNION
    (SELECT choice_id,poll_id,datetime_voted from je_user_vote ORDER BY datetime_voted DESC)");

我不知道为什么会出现这个问题。如果我不使用 UNION 意味着它工作正常。例如。下面的查询显示了当前时间到旧时间的顺序

 $result = mysql_query("SELECT * FROM je_addchoice, je_addpoll where je_addpoll.privacy='0' AND je_addpoll.start_date <= '$check_date' AND je_addpoll.end_date >='$check_date'  AND je_addpoll.poll_id=je_addchoice.poll_id order by je_addchoice.choicecreationtime desc");

谁能帮我解决这个问题

最佳答案

通过子查询包装联合查询,并在外部查询上对它们进行排序

SELECT *
FROM 
    (
        SELECT choice_id, poll_id, choicecreationtime AS TIME
        FROM je_addchoice
        UNION
        SELECT choice_id, poll_id, datetime_voted AS TIME
        FROM je_user_vote
    ) s
ORDER BY TIME DESC

更新 1

SELECT choice_id, poll_id, choicecreationtime AS TIME
FROM je_addchoice
UNION
SELECT choice_id, poll_id, datetime_voted AS TIME
FROM je_user_vote
ORDER BY Time DESC

关于php - 在带有 UNION 关键字的 mysql 查询中使用按 DESC 或 ASC 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14040886/

相关文章:

javascript - 聊天 Smartsupp-Drupal 脚本

javascript - HTML/PHP : How do I email a form using PHPMailer without getting a blank page?

php - 用PHP计算两个日期之间的工作时间

php - 支持注释的 PHP JSON 解析器

PHP:关键字搜索:在字符串中查找子字符串

php - Angularjs - 文本区域中的多行

sql - VARCHAR 与 TEXT 或 LONGTEXT

java - 为什么这个@JsonIgnore 修复了我的无限循环?

mysql - ORDER BY FIELD 带通配符?

别名列的sql过滤结果