簡體   English   中英

如何根據MySQL中的多列從多個表中獲取唯一記錄?

[英]How to get unique records from multiple tables based on multiple columns in MySQL?

我有3張桌子:

contacts1

id  name    email
1   sachin  sachin@gmail.com
2   amit    sachin@gmail.com
2   rahul   rahul@yahoo.com

contacts2

id  name    email
1   neha    neha@gmail.com
2   sachin  sachin@gmail.com
3   mukesh  mukesh@yahoo.com

contacts3 

id  name        email
1   pooja       pooja@gmail.com
2   mukeshkumar mukesh@yahoo.com
3   amit        amit@gmail.com

我想從這 3 個表中獲取唯一記錄(EMAIL COLUMN)。 我用UNION作為

SELECT `name`, `email` FROM `contacts1` WHERE `email` != '' 
UNION 
SELECT `name`, `email` FROM `contacts2` WHERE `email` != '' 
UNION 
SELECT `name`, `email` FROM `contacts3` WHERE `email` != '' 

輸出

在此處輸入圖片說明

結果集中的兩條記錄具有相同的電子郵件 ID(紅色叉號)。 我想排除它們並只獲取它們的第一次出現。 我為email字段嘗試了DISTINCT ,但它給了我一個錯誤。 我們怎么做?

我想實現這一目標

在此處輸入圖片說明

嘗試使用帶有 group by 的子查詢,如下所示:

SELECT M.* FROM (
    SELECT `name`, `email` FROM `contacts1` WHERE `email` != '' 
    UNION 
    SELECT `name`, `email` FROM `contacts2` WHERE `email` != '' 
    UNION 
    SELECT `name`, `email` FROM `contacts3` WHERE `email` != '' 
) AS M
GROUP BY M.`email`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM