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

HIRANO Yoshitaka y-hirano @ arp-nt.co.jp
2005年 8月 2日 (火) 17:45:44 JST



a_yari 様、藤沢様、加藤様

早速お返事ありがとうございました。

>a_yari 様

お教えいただいたSQL文を実行したところ、以下の結果が返って来ました。

|count |
-----------
|  1     |


下記の方法でも、取得できる件数を調べてみました。

select count(*) from kaiin_skill

こちらは、以下の結果になります。

|count |
-----------
|  5     |


>藤沢様
>加藤様

最初にエラーが発生したテーブルはもっと項目が多かったので
現在、メールで書いたものと同じテーブル、内容でテストを行っているのですが
同じ結果が表示されています。
また、データの内容について再確認しましたが、メールで書いたものと同じ内容で間
違いありません。

データ型は、すべてtext 型に設定しています。
テーブルの作成は phpPgAdmin から行っており、データ長、デフォルト値は全て指定
していません。

最初のメールで書き忘れましたが、サーバの環境はレンタルサーバを使用していま
す。
これまでにも、PostgreSQLのいくつかの機能に制限がつけられていたので、
念のため問い合わせてみようと思います。

皆様から頂いたメールを拝読して、SQL文にはおそらく問題ないということがわかり
ました。
他に何か考えられる原因について、心当たりがありましたら
ご教示頂ければ幸いです。

よろしくお願いいたします。


-----Original Message-----
From: pgsql-jp-bounces @ ml.postgresql.jp
[mailto:pgsql-jp-bounces @ ml.postgresql.jp]On Behalf Of a_yari
Sent: Tuesday, August 02, 2005 4:22 PM
To: PostgreSQL Japanese Mailing List
Subject: [pgsql-jp: 35777] Re: INNER JOIN について


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 メーリングリストの案内