首页 > 解决方案 > 选择按 id 排序的唯一行

问题描述

我有两张桌子

表 A

+-----+---------+---------+
| pid | name    | country |
+-----+---------+---------+
|  1  | ABC     | XXXXXXX |
|  2  | EFG     | YYYYYYY |
|  3  | IJK     | ZZZZZZZ |
|  4  | LMN     | AAAAAAA |
|  5  | OPQ     | BBBBBBB |
|  6  | RST     | CCCCCCC |
+-----+---------+---------+

表 B

+-----+---------+
| id  | pid     |
+-----+---------+
|  5  |   5     | 
|  4  |   1     | 
|  3  |   2     | 
|  2  |   5     | 
|  1  |   2     |
+-----+---------+

我想要下面的输出

+-----+---------+---------+
| pid | name    | country |
+-----+---------+---------+
|  5  | OPQ     | BBBBBBB |
|  1  | ABC     | XXXXXXX |
|  2  | EFG     | YYYYYYY |
+-----+---------+---------+

也就是说,输出应该得到表 B id 字段的最新条目,表 A 的数据应该显示在表 B 中出现的 pid 序列上

标签: sqlsql-server

解决方案


尝试这个:

SELECT DISTINCT A.PID, A.NAME, A.COUNTRY
FROM TABLE_A A
INNER JOIN TABLE_B B
ON A.PID = B.PID
ORDER BY A.PID

推荐阅读