MySQL 查询不显示重复的 id

标签 mysql sql prestashop-1.6

如果我的查询中重复的 id_customer 是,我想不显示,

SELECT
    ps_orders.id_customer,
    ps_customer.firstname,
    ps_customer.lastname,
    ps_customer.email,
    ps_orders.total_paid
FROM
    ps_orders
    RIGHT JOIN ps_customer 
        on ps_orders.id_customer = ps_customer.id_customer
WHERE
    ps_orders.total_paid > 1
GROUP BY
    ps_orders.id_customer;

我正在使用“分组依据”来做,但它没有显示。我希望它不会显示任何内容,即使是分组依据

显示是这样的

 id_customer    firstname   lastname    email   total_paid
--------------------------------------------------------
55  name8   name10  ***@windowslive.com 88.90
58  name6   name7   ****@hotmail.com    78.90
59  name3   name5   ****@hotmail.com    123.83
60  name    name2   ****@hotmail.com    78.90

第一次查询是这样的,

SELECT
    ps_orders.id_customer,
    ps_customer.firstname,
    ps_customer.lastname,
    ps_customer.email,
    ps_orders.total_paid
FROM
    ps_orders
    RIGHT JOIN ps_customer 
        on ps_orders.id_customer = ps_customer.id_customer
WHERE
    ps_orders.total_paid > 1
ORDER BY
    ps_orders.id_customer;

没有分组依据

 id_customer    firstname   lastname    email   total_paid
--------------------------------------------------------
55  name8   name10  ***@windowslive.com 88.90
58  name6   name7   ****@hotmail.com    56.00
58  name6   name7   ****@hotmail.com    87.90
58  name6   name7   ****@hotmail.com    79.99
58  name6   name7   ****@hotmail.com    78.90
59  name3   name5   ****@hotmail.com    123.83
60  name    name2   ****@hotmail.com    78.90

但我想这样看

 id_customer    firstname   lastname    email   total_paid
--------------------------------------------------------
55  name8   name10  ***@windowslive.com 88.90
59  name3   name5   ****@hotmail.com    123.83
60  name    name2   ****@hotmail.com    78.90

最佳答案

试试这个:

SELECT
    ps_orders.id_customer,
    ps_customer.firstname,
    ps_customer.lastname,
    ps_customer.email,
    ps_orders.total_paid
FROM
    ps_orders
    JOIN ps_customer 
        on ps_orders.id_customer = ps_customer.id_customer
WHERE
    ps_orders.total_paid > 1
    AND ps_orders.id_customer IN (  SELECT  ps_orders.id_customer
                                    FROM    ps_orders
                                    GROUP BY ps_orders.id_customer
                                    HAVING COUNT(1) < 2 )

关于MySQL 查询不显示重复的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508923/

相关文章:

加入MySQL。如何只加入第一场比赛? (加入限制1)

sql - HAVING 和 WHERE 子句的区别

php - 在 DATE 比较时出现 MYSQL 错误

php - 注意 $category->getProducts() : "Trying to get property of non-object"

module - PrestaShop 中的延迟加载页面?

mysql - #1452-无法添加或更新子行:外键约束失败

mysql - 如何在having子句中提出两个条件

javascript - 在 sonarqube 4.5.1 上获取 "exception clearing maxRows/queryTimeout"

mysql - 用于提取仅链接到已关闭缺陷的测试用例的 QC 查询

linux - AH01630 : client denied by server configuration Apache