MySQL JOIN,GROUP BY,ORDER BY

kry*_*ryo 6 mysql sql-order-by

我有一张产品表:

CREATE TABLE products (`id` INT);
Run Code Online (Sandbox Code Playgroud)

以及这些产品的图像表:

CREATE TABLE images (`id` INT, `product_id` INT, `default` TINYINT(1));
Run Code Online (Sandbox Code Playgroud)

我需要选择所有产品,然后加入图像表,以便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
Run Code Online (Sandbox Code Playgroud)

哪个没有优先考虑"默认"图像.子查询似乎没有做任何事情.

kry*_*ryo 1

看起来我只是在子查询的 ORDER BY 中缺少“DESC”

:\