簡體   English   中英

SQL select 不同的一列並顯示所有

[英]SQL select distinct column of one and display all

我有一張這樣的桌子

ID | course_id | date       | location
1  | 02        | 02-02-2020 | HL
2  | 02        | 02-02-2020 | JL
3  | 13        | 04-02-2020 | BK
4  | 14        | 13-03-2020 | HL
5  | 13        | 18-03-2020 | JL

我想獲得一個表格,過濾 course_id 以僅顯示唯一但還獲取所有其他數據

ID | course_id | date       | location
1  | 02        | 02-02-2020 | HL
3  | 13        | 04-02-2020 | BK
4  | 14        | 13-03-2020 | HL

所以我會得到這樣的結果。

我已經完成了SELECT DISTINCT 'course_id' FROM 'course_batches' ORDER BY 'ID' DESC這只會拉出唯一的 course_id 列。 然后我試過了

SELECT *
  FROM 'course_batches' AS a
  JOIN (SELECT DISTINCT(course_id) AS col1 FROM 'course_batches') ORDER BY 'ID' DESC

哪個返回了錯誤。 我可能下錯了訂單或調用了完全不同的查詢,但我不確定這里出了什么問題

通用方法使用相關子查詢:

select cb.*
from course_batches cb
where cb.id = (select max(cb2.id) from course_batches cb2 where cb2.course_id = cb.course_id);

筆記:

  • 為了提高性能,您需要(course_id, id)上的索引。
  • 為您的表使用有意義的表別名( cb是縮寫)。
  • 僅對字符串和日期常量使用單引號 - 從不用於標識符!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM