1
私は製品情報を収集するいくつかのSQLを持っています。また、結合されたテーブルからイメージを取得します。商品に複数の画像が含まれることがあります(場合によっては表示されない場合もあります)。これにより結果に重複が生じます。このクエリを変更して、結合されたイメージテーブル(image_d、image_p、image_t)から1つのイメージ(またはイメージなし)のみを返すにはどうすればよいですか?複数の結合テーブルから1つのイメージ行だけを返す方法はありますか?
SELECT
products_categories.categoryid,
products.productid,
products.product,
products.descr,
products.rating,
products.title_tag,
images_d.image_path AS imaged,
images_p.image_path AS imagep,
images_t.image_path AS imaget,
clean_urls.clean_url
FROM products_categories
INNER JOIN products ON products_categories.productid = products.productid
LEFT JOIN images_d ON products.productid = images_d.id
LEFT JOIN images_p ON products.productid = images_p.id
LEFT JOIN images_t ON products.productid = images_t.id
LEFT JOIN clean_urls ON products.productid = clean_urls.resource_id
WHERE products_categories.categoryid = 265
AND products_categories.main = 'Y'
AND products.forsale = 'Y'
ORDER BY productid
ありがとうございました。
動作するようには思えない、私はまだのは、返された重複した商品コードを取得します。 –
@stackasker:重複した製品が複数のカテゴリに属している可能性がありますか? –
@AndriyM:いいえ、そうではありません。 2でグループ化するように提案されたクエリを変更すると、正しい結果が返されるようです。より多くの睡眠、より多くのテスト。 –