首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Order By with Union - SQL语句

使用Order By with Union - SQL语句
EN

Stack Overflow用户
提问于 2018-05-30 06:28:47
回答 1查看 30关注 0票数 -2

我有一个数据库,里面有从一个用户到另一个用户的直接消息。

表名: dm

id int(11)主键

收件人: varchar

发件人: varchar

消息: varchar

我有一条SQL语句,它从to和from列中选择不同的值,就像它们是一列一样。($username是一个会话变量)

代码语言:javascript
复制
"SELECT DISTINCT from
 FROM dm
 WHERE to = '$username'
 UNION
 SELECT DISTINCT to
 FROM dm
 WHERE from = '$username'
 "; 

我正在检查这个用户是否基本上已经收到或发送了任何消息。我想按dm的id排序。我如何改变我的代码,使我得到相同的结果,并按id DESC排序?如果我像这样简单地输入ORDER BY,我会得到一个错误,因为我没有选择它...非常感谢你的帮助

代码语言:javascript
复制
"SELECT DISTINCT from
 FROM dm
 WHERE to = '$username'
 UNION
 SELECT DISTINCT to
 FROM dm
 WHERE from = '$username'
 ORDER BY id DESC
 ";
EN

回答 1

Stack Overflow用户

发布于 2018-05-30 06:52:26

如果我得到了你想要做的事情,你应该把事情分开:

第一步:原始代码,加上添加到数据集中的用户ID

代码语言:javascript
复制
CREATE TABLE new_table_name AS
  SELECT DISTINCT ID, from
  FROM dm
  WHERE to = '$username'
  UNION
  SELECT DISTINCT ID, to
  FROM dm
  WHERE from = '$username';

第二步:按ID排序

代码语言:javascript
复制
CREATE TABLE ordered_table AS
      SELECT *
      FROM new_table_name 
      ORDER BY ID DESC;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50593880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档