0

我有一个结构如下的 mysql 表: order_id - customer_name - customer_email_address

我需要进行查询以搜索具有相同 customer_name 或相同 customer_email 的记录,并显示按 order_id 组排序的结果(降序)。

例子:

mysql表

order_id    customer_name    customer_email_address
1           pippo            pippo@pippo.com
2           pippo            pippo2@pippo2.com
3           pluto            pluto@pluto.com
4           caio             pippo@pippo.com
5           pippo4           pippo4@pippo4.com
6           pluto            pluto22@pluto22.com

结果

6           pluto            pluto22@pluto22.com
3           pluto            pluto@pluto.com
4           caio             pippo@pippo.com     
1           pippo            pippo@pippo.com
2           pippo            pippo2@pippo2.com

结果 6 和 3 共享相同的 customer_name 结果 4 和 1 共享相同的 customer_email_address 结果 1 和 2 共享相同的 customer_name

Order_id 5 不在结果中,因为它没有重复项。

4

1 回答 1

0

尝试这个:

SELECT
    order_id,
    customer_name,
    customer_email_address
FROM 
    my_table
WHERE 
    order_id IN (
        SELECT
            order_id
        FROM
            my_table
        GROUP BY
            customer_name
        HAVING 
            COUNT(*)>1

        UNION

        SELECT
            order_id,
        FROM
            my_table
        GROUP BY
            customer_email_address
        HAVING 
            COUNT(*)>1
    )
ORDER BY 
    customer_name,
    customer_email_address,
    order_id DESC
于 2013-05-09T11:22:39.400 回答