さまざまな方法を試し、他の質問やフォーラムを検索しましたが、探しているものが見つかりません (間違ったキーワードを検索している可能性があります)。
とにかく、ここに私の構造があります:
mycars
--car_id (pk)
--make
--model
mycars_details
--car_id (pk)
--option1
--option2
mycars_gallery
--car_id (pk)
--imgcount
--imglink
--imgthumb
mycars と mycars_details (PK ごとに 1 行しかない) では正常に機能する 3 つのテーブルすべてをプルする必要がありますが、mycars_gallery には 1 台の車に対して 3 つの行 (画像) があります。ユーザーは、1 台の車に対して最大 12 枚の画像をアップロードできます。
したがって、このSQLを実行すると:
SELECT * FROM mycars c
LEFT OUTER JOIN mycars_gallery g
ON c.car_id = g.car_id
LEFT OUTER JOIN mycars_details d
ON c.car_id = d.car_id
WHERE c.status = 1 AND c.car_id = 27
出力:
|car_id|make|model|option1|option2|imgcount|imglink |imgthumb |
--------------------------------------------------------------
| 27 |volk|jetta| 1 | 0 | 1 |link1.jpg|thumb1.jpeg|
| 27 |volk|jetta| 1 | 0 | 2 |link2.jpg|thumb2.jpeg|
| 27 |volk|jetta| 1 | 0 | 3 |link3.jpg|thumb3.jpeg|
だから私は他のテーブルからこれらすべての重複を取得します。このデータを smarty 配列に保存し、smarty ループを使用してページに吐き出します。
このようなもの:
{section name=car loop=$SHOW_ARRAY}
{$SHOW_ARRAY[car].make} - {$SHOW_ARRAY[car].model}<br>
{$SHOW_ARRAY[car].imglink}
{/section}
質問:クエリが間違っているように感じます。データベース (mycars_gallery tbl) にすべての画像が保存されている 1 台の車を取得するにはどうすればよいですか?