使用LEFT JOIN
-- 方案1 先去重,再聯(lián)結,符合正常思路
SELECT * FROM
(SELECT DISTINCT 用戶ID FROM 用戶購買20110901) A
LEFT JOIN
(SELECT DISTINCT 用戶ID FROM 用戶購買20110902) B
ON A.用戶ID = B.用戶ID;
-- 方案2 先聯(lián)結 再去重,疑問點在于 只能再SELECT添加一個DISTINCT函數(shù)
SELECT DISTINCT A.用戶ID,B.用戶ID
FROM 用戶購買20110901 AS A LEFT JOIN 用戶購買20110902 AS B
ON A.用戶ID = B.用戶ID;
兩則得出的結果是一樣的,但是方案一 更符合正常的思路。
使用RIGHT JOIN
-- 方案1 先去重,再聯(lián)結,符合正常思路
SELECT * FROM
(SELECT DISTINCT 用戶ID FROM 用戶購買20110901) A
RIGHT JOIN
(SELECT DISTINCT 用戶ID FROM 用戶購買20110902) B
ON A.用戶ID = B.用戶ID;
-- 方案2 先聯(lián)結 再去重,疑問點在于 只能再SELECT添加一個DISTINCT函數(shù)
SELECT DISTINCT A.用戶ID,B.用戶ID
FROM 用戶購買20110901 AS A RIGHT JOIN 用戶購買20110902 AS B
ON A.用戶ID = B.用戶ID;
兩則得出的結果是一樣的,但是方案一 更符合正常的思路。
使用INNER JOIN
-- 方案1 先去重,再聯(lián)結,符合正常思路
SELECT * FROM
(SELECT DISTINCT 用戶ID FROM 用戶購買20110901) A
INNER JOIN
(SELECT DISTINCT 用戶ID FROM 用戶購買20110902) B
ON A.用戶ID = B.用戶ID;
-- 方案2 先聯(lián)結 再去重,疑問點在于 只能再SELECT添加一個DISTINCT函數(shù)
SELECT DISTINCT A.用戶ID,B.用戶ID
FROM 用戶購買20110901 AS A INNER JOIN 用戶購買20110902 AS B
ON A.用戶ID = B.用戶ID;
兩則得出的結果是一樣的,但是方案一 更符合正常的思路。