我的表格包含用户的信息,并具有以下属性:name
,surname
和date_of_birth
。我想返回具有不同name
和不同surname
以及不同date_of_birth
的行。我知道查询类似于GROUP BY
和DISTINCT
。
这是一个例子
USERS
id | name | surname | date_of_birth
---+----------+-----------+-----------
1 | Mark | Smith | 01.01.1990.
2 | Ana | Smith2 | 01.01.1991.
3 | Ana | Smith2 | 01.01.1991.
4 | Mark | Smith2 | 01.01.1991.
RESULT
id | name | surname | date_of_birth
---+----------+-----------+-----------
1 | Mark | Smith | 01.01.1990.
3 | Ana | Smith2 | 01.01.1991.
4 | Mark | Smith2 | 01.01.1991.
行必须在所有三个属性中具有不同的值才能作为结果选择。
答案 0 :(得分:1)
使用DISTINCT
消除重复的行:
SELECT DISTINCT name
, surname
, date_of_birth
FROM USERS
答案 1 :(得分:0)
如果您想SELECT
除id
以外的所有内容,那么您可以在DISTINCT
中使用SELECT
关键字,就像 @Rocket Hazmat 建议:
SELECT DISTINCT `name`
, `surname`
, `date_of_birth`
FROM `table`
但是如果您还希望在所有重复值之间显示第一个(最早,最小)id
(,如您在示例中所示),那么你应该使用以下查询:
SELECT MIN(`id`)
, `name`
, `surname`
, `date_of_birth`
FROM `table`
GROUP BY `name`
, `surname`
, `date_of_birth`