数日前から、この1つの問題の解決策は、結合されたテーブルからのデータのソートに関しては見つかりませんでした。mySQLのソート問題JOIN
私はレストランの旅程をユーザー向けに作っています。各ユーザーには、旅程にレストランがいくつかあります。
私は2つのテーブルを持っています.1つは、ユーザーの旅程に関する情報(いつレストランを訪れるか、レストラン)と、私が知っているすべてのレストランに関する情報を含むテーブルです。
ガイド ...................と.............. レストラン
userid ---> id
restaurant1_id -->--| name
date1 | style
restaurant2_id -->--| address
date2
「restaurant1_id」または「restaurant2_id」はレストランテーブルの「id」に対応します。だから私はこのように、これらのテーブルを結合するインナーです:
SELECT restaurants.name AS name, restaurants.style AS style, restaurants.address AS address, guides.date1 AS date1, guides.date2 AS date2
FROM `guides`
INNER JOIN `restaurants`
ON guides.restaurant1_id = restaurants.id or guides.restaurant2_id = restaurants.id
WHERE guides.userid = 2
は私が「2」訪問されたIDを持つレストランのユーザーのすべての情報の全てを見てみたいと思いますと言います。私はフィドル
hereを作成
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo
$row['name'].'<br>'
.$row['style'].'<br>'
.$row['address'].'<hr>' ;
}
}
else {
echo 'No results.';
}
:次のクエリでは、私は、所望の結果を取得しています。
問題が発生している場合は、結果を並べ替えています。私は "guide2_id"の前に表示する "guide1_id"として "ガイド"テーブルで参照されているレストランをお勧めします。
もう一つの問題は日付です。私は 'restaurant1_id'の名前の隣に 'date1'を表示する方法を理解できません。
すべてのデータを変数に保存する必要がありますか、これにはより良い方法がありますか?私は何か提案を感謝します!
大きな問題は、あなたが複数の行が戻されますことのようです。私は、レストランごとに1度、レストランのテーブルに複数回参加したいと思う。 – Kickstart
あなたの提案をお寄せいただきありがとうございます。キックスタート。しかし、ガーデンAppleはその問題の解決策を見つけました。 – Rens