私は立ち往生しており、あなたの助けが必要です(アドバイス)。私はPHP & MysQLを使用しています。私の問題は以下のとおりです。MySQL LEFT JOINテーブルまたはPHP結合配列
これは私が達成しようとしているものの簡略化されたバージョンです。私は2つのテーブルを持っています.1つは都市リストで、もう1つは出発です。これらの2つのテーブルを可能な限りLEFT JOINして、bus_departuresテーブルに接続されたレコードがなくても、すべての都市のリストを返したいと思います。
私はMySQLを使用してこれを行うことができますか、PHPで配列を組み合わせる必要があります。私はあなたの解決策を見たいと思います。ありがとうございました。
市
-------------------
ID | CITY
-------------------
1 | London
2 | Paris
3 | New York
4 | Rome
5 | Zagreb
Bus_Departures
------------------------------------------
ID | DATE | CITY | No. DEPARTURES
------------------------------------------
1 | 2016-06-06 | 1 | 5
2 | 2016-06-06 | 4 | 3
3 | 2016-06-06 | 3 | 2
4 | 2016-06-07 | 3 | 4
5 | 2016-06-07 | 1 | 1
6 | 2016-06-08 | 3 | 8
7 | 2016-06-09 | 1 | 3
8 | 2016-06-09 | 4 | 2
SELECT
SELECT * FROM City LEFT JOIN Bus_Departures WHERE date = '2016-06-07' ORDER BY City ASC
RETURNS
London 2016-06-07 1
New York 2016-06-07 4
は私が
London 2016-06-07 1
New York 2016-06-07 4
Paris 2016-06-07 - (no records at all)
Rome 2016-06-07 - (no records for this day)
Zagreb 2016-06-07 - (no records at all)
ありがとうこれをユーザにECHOしたいと思います!
誰でもデータ/表のコピーを貼り付けることが非常に困難になりました。 2つの別々のセクションとして並べる代わりに投稿してください。また、1(ロンドン)の代わりに番号を掲示します。ありがとうございます。 – e4c5
左の結合は大丈夫ですが、あなたのWHERE文は、左の結合が実行された後、右側の表にあります。結果として、例えば、あなたが参加したパリのエントリは 'Paris NULL NULL'のようになり、' Rome 2016-06-06 3'と 'Rome 2016-06-09 2 '。 – Elijan9
批評e4c5のおかげで、私は次回よりユーザーフレンドリーなテーブルを投稿しようとします!もう一度Elijan9に感謝します。 – kiflica