[pgsql-jp: 37593] Re: 1:n から 1:1 を抽出するSQL文

FUKUSHIMA Katsuaki kfukushima @ sis.seino.co.jp
2006年 10月 20日 (金) 16:50:45 JST


福島@現実逃避モードです。

SELECT A.X, B.Y FROM A, B, (SELECT max(J) AS J, K AS I FROM B GROUP BY
K) AS C WHERE A.I = C.I and B.J = C.J

ではどうでしょう?(SQL89ですいません)


> 今、テーブル A と B があり A:B は 1:n の関係で定義されています。具体的には、
> テーブル A:
> col I : primary key
> col X : 会社名
> col P : ....
> col Q : ....
> 
> テーブル B:
> col J : primary key
> col K : references A(I)
> col Y : 会員名
> 
> となっており、テーブル B には同一会社の複数の会員が登録されています。
> ここで、ある条件に合致した会社名とその会社に属する会員のうち、最も
> primary key (J) の値の大きいものを1名づつ抽出したいのですが、有効なSQL
> 文は書けるでしょうか?
> 期待する結果は、
> 1. 株式会社A 山田
> 2. 株式会社B 田中
> 3. 有限会社C 鈴木
> 
-- 
---------------------------------------------------------
FUKUSHIMA Katsuaki at Seino Information Service Co., Ltd.
e-mail   kfukushima @ sis.seino.co.jp



pgsql-jp メーリングリストの案内