[SQL ] 找出每個群組中的一筆資料

看板Database作者 (多采多姿)時間17年前 (2008/10/09 21:11), 編輯推噓6(602)
留言8則, 5人參與, 最新討論串1/3 (看更多)
小弟在做案子時遇到的情況, 雖然用了笨方法解決掉了,但是仍覺得應該有更好的手法來解這問題, 問題是這樣的,有兩張表,一張是存群組資料,一張是存項目資料 categories items =============== =========================== category_name category_name | item_name =============== =========================== A A | a1 B B | b1 C A | a2 D C | c1 =============== B | b2 C | c2 C | c3 ============================ 現在,我希望只下一個 SQL (使用的是 PostgreSQL 8.1)指令, 就可以拿到每個群組的一個(也只有一個) item 如 ========================== category_name | item_name ========================== A | a1 B | b1 C | c1 ========================== 我現在的做法是取得群組後,對每個群組再下一個 SQL 指令來取得該群組的 item 不知道有沒有只要下一個 SQL 句子的做法 -- 政治是高明的騙術 化妝是高明的易容術 有了Photoshop就不用SK II -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.38.129 ※ 編輯: pkwbim 來自: 220.132.38.129 (10/09 21:18) ※ 編輯: pkwbim 來自: 220.132.38.129 (10/09 21:19)

10/09 23:24, , 1F
做得到阿 問題在於你要哪個ITEM出現 為何A群組出現的ITEM
10/09 23:24, 1F

10/09 23:25, , 2F
是a1而不是a2
10/09 23:25, 2F

10/10 11:46, , 3F
其實原本是要取得每個群組的第一筆(id最小)
10/10 11:46, 3F

10/10 12:54, , 4F
只是我連隨便取值都做不出來....
10/10 12:54, 4F

10/10 22:20, , 5F
看起來只需要group by…每次都要取隨機還比較麻煩咧XD
10/10 22:20, 5F

10/11 00:48, , 6F
DISTINCT SELECT from categories nature join items
10/11 00:48, 6F

10/12 18:08, , 7F
說真的喔,這題用 SQL 無解,可以考慮用函數,例如
10/12 18:08, 7F

10/12 18:15, , 8F
SELECT category_name, getItem(catID) FROM categories
10/12 18:15, 8F
文章代碼(AID): #18xWB-71 (Database)
討論串 (同標題文章)
文章代碼(AID): #18xWB-71 (Database)