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

mysql:9470

From: 平松 幸治 <平松 幸治 <kouji@xxxxxxxxxx>>
Date: Sat, 29 May 2004 20:40:33 +0900
Subject: [mysql 09470] SELECT?JOIN?でつまづいています

はじめまして 平松と申します

出勤簿を作成していろところの select?join? でつまづいています

master
+--------+---------+----------+
| mas_00 | mas_01  | mas_s_02 |
+--------+---------+----------+
| 1      | kouji   | 0        |
+--------+---------+----------+
| 2      | yasu    | 0        |
+--------+---------+----------+
| 3      | masa    | 0        |
+--------+---------+----------+
| 4      | taka    | 1        |

schdule
+--------+---------+-----------+
| sch_00 | sch_01  | sch_02    |
+--------+---------+-----------+
| 1      | 1       |2004-06-28 |
+--------+---------+-----------+
| 2      | 2       |2004-06-28 |
+--------+---------+-----------+
| 3      | 1       |2004-06-27 |

というテーブルがあります

SELECT * FROM master left join schedule on master.mas_00=schedule.sch_01 WHERE mas_s_02 = '0' AND sch_02 = '2004-06-28'

とすると 当然

+--------+---------+----------+--------+---------+-----------+
| mas_00 | mas_01  | mas_s_02 | sch_00 | sch_01  | sch_02    |
+--------+---------+----------+--------+---------+-----------+
| 1      | kouji   | 0        | 1      | 1       |2004-06-28 |
+--------+---------+----------+--------+---------+-----------+
| 2      | yasu    | 0        | 2      | 2       |2004-06-28 |
+--------+---------+----------+--------+---------+-----------+

がでてきます

なのですが
ここで

+--------+---------+----------+--------+---------+-----------+
| mas_00 | mas_01  | mas_s_02 | sch_00 | sch_01  | sch_02    |
+--------+---------+----------+--------+---------+-----------+
| 1      | kouji   | 0        | 1      | 1       |2004-06-28 |
+--------+---------+----------+--------+---------+-----------+
| 2      | yasu    | 0        | 2      | 2       |2004-06-28 |
+--------+---------+----------+--------+---------+-----------+
| 3      | masa    | 0        |        |         |           |
+--------+---------+----------+--------+---------+-----------+

というような 結果がでることを希望しています。

つまり
本日に出勤する人+出勤しない場合でも master.mas_s_02=0 の場合 出勤しないと表示したいので・・・
このような結果を求めています。

2回に分けてSELECTすればよいのかもしれませんが、なにかスマートではなくて


dbの根本的な考え方に問題があるのか、ただ単にSELECTの知識不足なのか・・・
判断つきません

どうするのが スマートですか?

MySQL 3.23.58 を 使用しています



平松幸治


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

->    9470 2004-05-29 20:40 [平松 幸治 <kouji@xxx] SELECT?JOIN?でつまづいています          
      9471 2004-05-29 21:12 ┣[Kazuma Yoshida <tais]                                       
      9472 2004-05-29 21:38 ┗[UNO Shintaro <uno@xx]                                       
      9473 2004-05-29 22:37  ┗[平松 幸治 <kouji@xxx]