作者pkwbim (多采多姿)
看板Database
標題[SQL ] 找出每個群組中的一筆資料
時間Thu Oct 9 21:11:22 2008
小弟在做案子時遇到的情況,
雖然用了笨方法解決掉了,但是仍覺得應該有更好的手法來解這問題,
問題是這樣的,有兩張表,一張是存群組資料,一張是存項目資料
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