2016-09-06 124 views
0

我將如何選擇行並顯示它們而不忽略任何重複值?我只是希望它們按原樣顯示,而不管查詢或值重複嗎?MySQL選擇沒有忽略重複?

我有2個數據庫,我需要從中獲取信息。第一個DB具有客戶的發票號碼和客戶ID,從這裏我可以獲得所有發票的客戶ID。有些客戶可能只有1個發票,而另一個客戶可能有3個發票。現在,一旦這些數據被拉出,我就會進入第二個數據庫,並使用用戶標識符來拉取該客戶的所有電話號碼。這是我的查詢的樣子。現在

SELECT number FROM `db_name` WHERE `userid`=594 AND `customid`= 8 UNION 
SELECT number FROM `db_name` WHERE `userid`=147 AND `customid`= 8 UNION 
SELECT number FROM `db_name` WHERE `userid`=147 AND `customid`= 8 UNION 
SELECT number FROM `db_name` WHERE `userid`=436 AND `customid`= 8 

,你可以看到,中間的2個查詢重複了相同的用戶ID,但是我需要他們的是因爲這個數據進入Excel表格中,並有2個等待客戶電話發票號碼數字作爲他們旁邊列中的輸入。

查詢的輸出是:

9123456789 
8987123456 
9987654321 

有沒有一種辦法可以讓MySQL給我的價值觀,無論他們是重複的疑問?我唯一的選擇是使用輸出,然後在excel中爲客戶ID做一個vlookup,每次我想要結果都會很痛苦。

非常感謝您的幫助!

+1

[UNION ALL](http://dev.mysql.com/doc/refman/5.7/en/union.html) – Uueerdo

+1

UNION的默認行爲是將重複的行從結果中刪除。可選的DISTINCT關鍵字除缺省值外沒有其他作用,因爲它還指定刪除重複行。使用可選的ALL關鍵字,不會發生重複行刪除,結果包括所有SELECT語句中的所有匹配行。 –

+1

嘗試使用UNION ALL而不是UNION – RIKI

回答

0
SELECT number FROM `db_name` WHERE `userid`=594 AND `customid`= 8 UNION ALL 
SELECT number FROM `db_name` WHERE `userid`=147 AND `customid`= 8 UNION ALL 
SELECT number FROM `db_name` WHERE `userid`=147 AND `customid`= 8 UNION ALL 

SELECT數FROM db_name WHERE userid = 436和customid = 8

+0

謝謝!有效! – cyrus