mysql如何不显示重复值

时间:2020-05-21 08:11:51

标签: mysql mysql-workbench

因此,脚本显示了这些值,但使用相同的电子邮件和日期复制了许多值。您需要获取唯一的值,例如,可能有相同的电子邮件,但日期不同。但是日期相同的电子邮件也不相同。 SELECT之后的DISTINCT不起作用,并且不能在每个字段之前应用它。 分组和排序也不能添加两个以上的字段。当我接受按电子邮件分组时,它显示所有唯一值,但不显示两个相同的电子邮件但日期不同时也需要的值,它愚蠢地显示一封电子邮件,仅此而已。 该怎么做。

SELECT concat(last_name, ' ', first_name, ' ', middle_name) as 'ФИО',
    email,
    phone,
    created_at,
    total,
    color
  FROM user
INNER JOIN `user` ON `order`.user_id = `user`.id
INNER JOIN `color` ON `user`.color_id = `color`.id

2 个答案:

答案 0 :(得分:0)

您需要在SELECT之后使用关键字DISTINCT。 示例:

SELECT DISTINCT concat(last_name, ' ', first_name, ' ', middle_name) as 'ФИО',
    email,
    phone,
    created_at,
    total,
    color
  FROM user

答案 1 :(得分:0)

您已经通过组合三个表中的字段来对结果进行排序:

SELECT concat(last_name, ' ', first_name, ' ', middle_name) as 'ФИО',
    email,
    phone,
    created_at,
    total,
    color,
    o.PRIMARY_KEY_HERE,
    c.id 
  FROM user AS u 
INNER JOIN `order` AS o ON o.user_id = u.id
INNER JOIN `color` AS c ON c.id = u.color_id 
ORDER BY u.email, o.PRIMARY_KEY_HERE, c.id 

注意 该查询已被重构以满足ORDER BY子句。