[前][次][番号順一覧][スレッド一覧]

mysql:9055

From: "山本 瑞己" <"山本 瑞己" <mizuki-yamamoto@xxxxxxxxxx>>
Date: Wed, 24 Mar 2004 19:11:13 +0900
Subject: [mysql 09055] Re: 複数のテーブルからのセレクト

山本です。

> select A.ID, A.NAME, IFNULL(B.COUNT, 0),B.uid from A left join B on
A.ID=B.ID
この検索をすると
  ID | NAME        | count | uid |
 ----+-------------+-------+-----+
   1 | あいうえお  |     1 |    1|
   2 | かきくけこ  |     5 |     1|
   2 | かきくけこ  |     4 |     2|
   3 | さしすせそ  |     0 |    NULL|
   4 | たちつてと  |     7 |    1|
   4 | たちつてと  |     2 |    2|
   5 | なにぬねの  |     0 |   NULL|
   6 | はひふへほ  |     6 |   2|
   7 | まみむめも  |     0 |    NULL|
になるわけですから
当然
> where B.uid=1
をつけた結果は
>  ID | NAME        | count | uid |
> ----+-------------+-------+-----+
>   1 | あいうえお  |     1 |    1|
>   2 | かきくけこ  |     5 |    1|
>   4 | たちつてと  |     7 |    1|
になると思われます。

なので、

select A.ID, A.NAME, IFNULL(B.COUNT, 0),B.uid from A left join B on
A.ID=B.ID and B.uid=1
とするわけですが
これでも結果は
  ID | NAME        | count | uid |
 ----+-------------+-------+-----+
   1 | あいうえお  |     1 |    1|
   2 | かきくけこ  |     5 |     1|
   3 | さしすせそ  |     0 |    NULL|
   4 | たちつてと  |     7 |    1|
   5 | なにぬねの  |     0 |   NULL|
   6 | はひふへほ  |     0 |   NULL|
   7 | まみむめも  |     0 |    NULL|
となってしまいます。

そこで、

select A.ID, A.NAME, IFNULL(B.COUNT, 0), IFNULL(B.uid,@test) from A left
join B on A.ID=B.ID and B.uid=@test:=1
とすると、
  ID | NAME        | count | uid |
 ----+-------------+-------+-----+
   1 | あいうえお  |     1 |    1|
   2 | かきくけこ  |     5 |     1|
   3 | さしすせそ  |     0 |    1|
   4 | たちつてと  |     7 |    1|
   5 | なにぬねの  |     0 |   1|
   6 | はひふへほ  |     0 |   1|
   7 | まみむめも  |     0 |    1|

と出ると思います。


[前][次][番号順一覧][スレッド一覧]

      9049 2004-03-24 14:34 [MAO <mao@xxxxxxxxxx>] 複数のテーブルからのセレクト            
      9050 2004-03-24 15:04 ┣["山本 瑞己" <mizuki]                                       
      9053 2004-03-24 18:33 ┃┗[MAO <mao@xxxxxxxxxx>]                                     
->    9055 2004-03-24 19:11 ┃ ┣["山本 瑞己" <mizuki]                                   
      9060 2004-03-24 20:50 ┃ ┃┗[MAO <mao@xxxxxxxxxx>]                                 
      9057 2004-03-24 19:35 ┃ ┣[Hiroshi Moriyama <mt]                                   
      9059 2004-03-24 20:32 ┃ ┗[<konet218@xxxxxxxxxx]                                   
      9051 2004-03-24 15:03 ┗[Hiroshi Moriyama <mt]