小编m. *_*ekk的帖子

按列 UNION,或以不同的顺序对 SELECT/JOIN 查询的两列进行排序

我有一个表 ,employee其中一列是last_name,它存储字符串。

使用 SELECT 查询,我试图获取last_name按字母顺序排序的列,作为一列,然后再次获取另一列,last_name这次按相反的字母顺序排序。

期望的结果看起来像

+-----------------+----------------+
| last name       | last name      |
+-----------------+----------------+
|  Apple          | Xylophone      |
+-----------------+----------------+
Run Code Online (Sandbox Code Playgroud)

我努力了

SELECT a.last_name, b.last_name
FROM employee A
LEFT JOIN employee B
ON a.last_name = b.last_name
ORDER BY a.last_name, b.last_name DESC;
Run Code Online (Sandbox Code Playgroud)

当然,这是行不通的,因为它按last_name按字母顺序对两列进行排序,甚至没有达到其他顺序条件,因为语法指定n仅当某些行在条件下相等时才使用条件n-1

在我的脑海里,我认为这就像

SELECT last_name 
FROM employee 
ORDER BY last_name;
Run Code Online (Sandbox Code Playgroud)

SELECT last_name 
FROM employee 
ORDER BY last_name DESC;
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将两者结合起来。当我联合这两个查询时,我得到了正确的数据,但它是以两列连接成一列的形式,当我需要两列保持不同时。

我在这里尝试使用 JOIN,这完全是在黑暗中进行的,因为我从未见过这样的语法:

(SELECT a.last_name 
FROM employee a 
ORDER …
Run Code Online (Sandbox Code Playgroud)

mysql order-by select

1
推荐指数
1
解决办法
205
查看次数

标签 统计

mysql ×1

order-by ×1

select ×1