MySQL如何返回独特/独特的结果?

ma1*_*w28 3 mysql sql distinct-values

我正在运行以下MySQL查询来查找没有手册(并且有黑色轮子等)的汽车

SELECT `cars`.* FROM `cars`
INNER JOIN wheels ON cars.id = wheels.car_id
LEFT OUTER JOIN manuals ON cars.id = manuals.car_id
WHERE (cars.created_at > '2010-09-09'
AND wheels.color = 'Black'
AND wheels.created_at < '2011-01-05'
AND manuals.car_id IS NULL)
Run Code Online (Sandbox Code Playgroud)

查询的结果看起来是正确的,但它返回id为27的汽车两次.如何更改查询以使所有结果都是唯一的(无重复)?

小智 14

你可以试试SELECT DISTINCT而不是SELECT

  • 成功了!现在,哪个更好,`SELECT DISTINCT`或`GROUP BY`?它们似乎都需要大约相同的时间. (2认同)

cri*_*ian 5

group by cars.id在查询EG的末尾添加:

SELECT `cars`.* FROM `cars`
INNER JOIN wheels ON cars.id = wheels.car_id
LEFT OUTER JOIN manuals ON cars.id = manuals.car_id
WHERE (cars.created_at > '2010-09-09'
    AND wheels.color = 'Black'
    AND wheels.created_at < '2011-01-05'
    AND manuals.car_id IS NULL)
GROUP BY cars.id
Run Code Online (Sandbox Code Playgroud)