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

看板Database作者 (多想兩分鐘 = =")時間17年前 (2008/10/13 00:56), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串3/3 (看更多)
不懂,應該不用這麼複雜: SELECT category_name, MIN(item_name) FROM items GROUP BY category_name 跟原PO用的 SQL結果是一樣的…?不知有無誤解需求。 不需要 categories這個資料表…除非沒出現過的也要撈出來。 ※ 引述《pkwbim (多采多姿)》之銘言: 這題算是自問自答了, 此題解法給我同事給找出來了 此法用到了 Sub Select SELECT items.* FROM items WHERE (items.name IN (SELECT MIN(items.name) FROM items inner join categories on categories.name = items.category_name GROUP BY categories.name)) ※ 引述《pkwbim (多采多姿)》之銘言: : 小弟在做案子時遇到的情況, : 雖然用了笨方法解決掉了,但是仍覺得應該有更好的手法來解這問題, : 問題是這樣的,有兩張表,一張是存群組資料,一張是存項目資料 : 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 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.212.131

10/13 16:00, , 1F
個人也覺得不需要用到join,按字面上的意思只要找到每類
10/13 16:00, 1F

10/13 16:05, , 2F
找到最初始的那個值,用這篇的方式就綽綽有餘了
10/13 16:05, 2F
文章代碼(AID): #18yYmuzL (Database)
文章代碼(AID): #18yYmuzL (Database)