どのようにこれらの3つのテーブルをphpで1つのクエリで組み合わせるのですか?私はこのクエリを使用すると、一致とスポーツの値をnullとして取得します。しかし、最後の右結合を左結合に変更すると、scheduleの値がnullになります。これをどうすれば解決できますか?ありがとう。PHPで1つの選択クエリで3つのテーブルを組み合わせる
PHP
<?php
$db_name = "atfest_db";
$mysql_user = "root";
$mysql_pass = "";
$server_name = "localhost";
$sql = "SELECT teamone,teamtwo,s_name,start,end,venue FROM `sport` right JOIN `matches` ON `matches`.`s_id` = `sport`.`s_id` right JOIN `schedule` ON `schedule`.`m_id` = `matches`.`m_id`";
$con = mysqli_connect($server_name,$mysql_user,$mysql_pass,$db_name);
$result = mysqli_query($con,$sql);
$response = array();
while($row=mysqli_fetch_array($result))
{
array_push($response, array("teamone"=>$row[0], "teamtwo"=>$row[1],
"s_name"=>$row[2]));
}
echo json_encode (array("schedule_response"=>$response));
mysqli_close($con);
?>
マッチテーブルはM_IDによってスケジュールテーブルに接続されているスポーツ・テーブルが一致B S_IDに接続されています。
これは私が
得る出力されます{"schedule_response":[{"start":null,"end":null,"venue":null,"teamone":
"hehe","teamtwo":"haha","s_name":"Soccer"}
私が必要とするのは、開始、終了、会場がスケジュール表から値を取得するためです。この
{"schedule_response":[{"start":2016-11-30 00:00:00,"end":2016-12-01
00:00:00,"venue":aaaaaa,"teamone":"hehe","teamtwo":"haha","s_name":"Soccer"},
右ジョイン?人々はまだこれを使用していますか?一致するもののみに 'INNER JOIN'を使用するか、または正しい(位置の)テーブルが先頭のテーブルである場合に' RIGHT JOIN'を使用してください。 – sagi
あなたのメインテーブルは何ですか?スポーツ、スケジュール、またはマッチ?どのテーブルがメインテーブルですか? – Viki888
右のジョインは、まれにしかありません。ちょうどスティーン ';-) – Strawberry