製品の表があります:
CREATE TABLE products (`id` INT);
そして、それらの製品の画像の表:
CREATE TABLE images (`id` INT, `product_id` INT, `default` TINYINT(1));
default
すべての製品を選択し、( = 1) の画像が優先されるように画像テーブルを結合する必要があります。製品に ( = 1) の画像がない場合はdefault
、( default
= 0) の画像がその場所。
ここに私が探しているものを示す画像があります:
今、私はこのクエリを持っています:
SELECT p.id, i.id
FROM products AS p
LEFT JOIN (
SELECT product_id, url
FROM images
ORDER BY default
) AS i
ON p.id = i.product_id
GROUP BY p.id
ORDER BY p.name
「デフォルト」の画像を優先しません。サブクエリは何もしていないようです。