[pgsql-jp: 35777] Re: INNER JOIN について

a_yari a_yari @ yahoo.co.jp
2005年 8月 2日 (火) 16:21:50 JST


HIRANO Yoshitaka wrote:

> スキルテーブル
> |    kaiin_id    |   skill_id    |
> ----------------
> |     1     |     1     |
> |     1     |     2     |
> |     5     |     1     |
> |     5     |     3     |
> |     5     |     4     |
> -------------------
> 
> スキルマスタテーブル
> |   skill_id  |  skill_name  |
> -------------------
> |      1     |  	A  	|
> |      2     | 	 B 	|
> |      3     | 	C	  |
> |      4     | 	D	  |
> |      5     | 	E	  |
> -------------------
> 
> この状態で、会員ID = 5 の会員が持つスキル名の一覧を表示しようと思い、
> 下記のSQL文を実行しました。
> -------------------------------------------
>    select
>    kaiin_skill.kaiin_id,
>    kaiin_skill.skill_id,
>    skill_master.skill_name
>    from kaiin_skill
>    inner join skill_master on
>  ( kaiin_skill.skill_id=skill_master.skill_id )
>    where
>    kaiin_skill.kaiin_id=5;
> -------------------------------------------
> 取得したい結果は以下のような内容です。
> 
> |  kaiin_id  |  skill_id  |  skill_name  |
> ----------------------
> |     5     |     1     |  A |
> |     5     |    3     |  C  |
> |     5     |     4     | D  |
> --------------------------------------

特におかしいところは無いようですが・・・

> 
> |  kaiin_id  |  skill_id  |  skill_name  |
> ----------------------
> |     5     |     1     |  A  |
> ------------------------
> 
結果の取得方法に問題はありませんか?
以下の文を実行したら結果はどうなりますか?

    select count(*)
    from kaiin_skill
    inner join skill_master on
  ( kaiin_skill.skill_id=skill_master.skill_id )
    where
    kaiin_skill.kaiin_id=5;

---
a_yari<a_yari @ yahoo.co.jp>



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