2012-05-10 113 views
1

我需要一個MySQL查詢PHP幫助呼應......MySQL查詢拉的結果和在PHP

我有一個叫做「表」結構如下表:

ID EMAIL GLOBAL_ID VENDOR_ID REVENUE USER 
1 [email protected] 123 7822 5 Bill 
2 [email protected] 123 90786 5 Paul 
3 [email protected] 123 17622 5 Mary 
4 [email protected] 124 1908 2 Eric 
5 [email protected] 125 189782 6 Jon 
6 [email protected] 125 11123 6 Paul 
7 [email protected] 126 11862 5 Dick 
8 [email protected] 126 271 5 Sue 
9 [email protected] 126 289871 5 George 
10 [email protected] 126 2211 5 Jack 
11 [email protected] 127 17771 10 Mary 
12 [email protected] 128 20891 5 Bill 
13 [email protected] 128 298981 5 Gary 

我需要一個查詢來拉動地方EMAIL和GLOBAL_ID一起是唯一的記錄(即從未有相同的電子郵件/ GLOBAL_ID組合兩次),如果有3條以上的記錄有相同的電子郵件和GLOBAL_ID組合不包括,而且我不想在USER = Jon的地方拉取任何記錄。因此,從上述數據和使用PHP來呼應,應該會顯示以下結果:

EMAIL GLOBAL_ID 
[email protected] 124 
[email protected] 127 
[email protected] 128 

*注意:我只需要呼應了EMAIL和GLOBAL_ID

任何幫助與查詢呼應了這一點在PHP中做到這一點將非常感謝!

回答

0
SELECT DISTINCT 
    EMAIL,GLOBAL_ID 
FROM `table` 
WHERE USER<>'Jon' 
GROUP BY CONCAT(EMAIL,'@@',GLOBAL_ID) 
HAVING COUNT(*)<3 
+0

你會得到6 [email protected] 125 11123 6保羅,不是嗎? –

+0

@RaphaëlAlthaus爲什麼?我分組... AH我忘了DISTINCT,修復了我的帖子,謝謝 –

+0

謝謝。我已經試過這個和查詢不斷處理,但沒有發生。我的桌子很大(abt 40k記錄)。有沒有一種方法可以加快查詢速度? –