任何人都可以告诉我如何选择与person_id一起使用的唯一fruit_name 我写了查询,但它给出了错误。
我的查询:
select person_id,distinct fruit_name from person_fruit;
表:
提前致谢!
答案 0 :(得分:3)
DISTINCT
始终适用于所有列。在标准SQL中,它必须直接放在SELECT
之后(实际上默认为SELECT ALL
),您的语法无效标准SQL。
您必须定义要返回的ID,因为每个水果有多个ID。
在您的情况下,您只需切换到GROUP BY:
select min(person_id), -- or MAX
fruit_name
from person_fruit
group by fruit_name;
这适用于所有DBMS,而不仅仅适用于较旧的MySQL版本(我真的很喜欢MySQL最终遵循标准,当然这会给MySQL开发人员带来很多困惑)。
答案 1 :(得分:2)
根据您选择的所有列,您无法根据单个列获取不同的行,因为您可以使用group by -
select person_id,fruit_name from person_fruit group by fruit_name;
以下查询将根据两列的组合为您提供不同的行。
select distinct person_id, fruit_name from person_fruit;