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 に答える