【发布时间】:2012-12-29 07:48:44
【问题描述】:
我有一张产品表:
CREATE TABLE products (`id` INT);
以及这些产品的图片表:
CREATE TABLE images (`id` INT, `product_id` INT, `default` TINYINT(1));
我需要选择所有产品,并加入图像表,以便首选带有 (default = 1) 的图像,如果产品没有带有 (default = 1) 的图像,则使用带有 (default = 1) 的图像(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
不优先考虑“默认”图像。子查询似乎没有做任何事情。
【问题讨论】:
标签: mysql sql-order-by