看板 Database 關於我們 聯絡資訊
小弟在做案子時遇到的情況, 雖然用了笨方法解決掉了,但是仍覺得應該有更好的手法來解這問題, 問題是這樣的,有兩張表,一張是存群組資料,一張是存項目資料 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)
matchyou:做得到阿 問題在於你要哪個ITEM出現 為何A群組出現的ITEM 10/09 23:24
matchyou:是a1而不是a2 10/09 23:25
pkwbim:其實原本是要取得每個群組的第一筆(id最小) 10/10 11:46
pkwbim:只是我連隨便取值都做不出來.... 10/10 12:54
grence:看起來只需要group by…每次都要取隨機還比較麻煩咧XD 10/10 22:20
softwind:DISTINCT SELECT from categories nature join items 10/11 00:48
bopomofo:說真的喔,這題用 SQL 無解,可以考慮用函數,例如 10/12 18:08
bopomofo:SELECT category_name, getItem(catID) FROM categories 10/12 18:15