[英]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.