ジョインステートメントのいくつかのMySQLテーブルからデータを抽出しようとするときに問題があります。ジョインが選択されていない行が戻ってくる
私のテーブルと属性は、次のとおりです。
appointment_end_time (table)
appointment_end_time_id (int)(pk)(ai)
appointment_end_date (datetime)
appointment_start_time (table)
appointment_date_id (int)(pk)(ai)
appointment_start_date (datetime)
instructor(table)
instructor_id (int)(pk)(ai)
firstname varchar(45)
lastname varchar(45)
appointment_timetable
appointment_timetable_id int(11) AI PK
instructor_id int(11) FK
appointment_date_id int(11) FK
appointment_end_time_id int(11) FK
SELECT a.appointment_timetable_id, i.instructor_id, ad.appointment_start_date, aet.appointment_end_date
FROM db12405956.appointment_timetable a
JOIN instructor i on i.instructor_id = a.instructor_id
JOIN appointment_start_time ad on ad.appointment_date_id = a.appointment_date_id
JOIN appointment_end_time aet on aet.appointment_end_time_id = a.appointment_end_time_id
ORDER BY a.appointment_timetable_id;
しかし、このコードは、選択されていない行を実行する場合ので、私は私が間違ってやって思ったんだけど、どんな助けを思い出させるん大いに感謝されます
サンプル行: (appointment_end_time)
appointment_end_time_id appointment_end_date
1 2016-12-26 14:00:00
2 2016-12-24 13:00:00
3 2016-12-26 13:00:00
(appointment_start_time)
appointment_date_id appointment_start_date
1 2016-12-26 15:00:00
2 2016-12-24 16:00:00
3 2016-12-26 15:30:00
instructor_id firstname lastname
1 Sasha Thompson
2 Laura Robinson
3 John Walters
appointment_timetable
appointment_timetable_id instructor_id appointment_date_id appointment_end_time_
1 Blank Blank Blank
2 Blank Blank Blank
3 Blank Blank Blank
問題を示すために十分なサンプルデータを表示します。 –
これは、1つ以上のテーブルにリレーションシップを行うためのデータがないことを意味します。インストラクターやstart_times、end_timesのないアピインメントがあるので、何も戻ってこない。これはデータの問題であり、あなたは何も表示していないので、これを言うことは不可能です。 – JNevill
@JNevillだから、たとえば9人のインストラクターと3人の開始時間と終了時間がありますが、それは何にも当てはまりますか?行の量は互いに一致する必要がありますか? –