2014-08-29 68 views
0

我有問題在mysql中使用DISTINCT以及連接表。mysql表加入和使用DISTINCT

我有2個表:tapplicant和toutcome他們共享一個APPID,這是我想要加入他們。

我查詢tapplicant表上工作得很好,我只是需要從所謂的「狀態」

我也用不同之處在我的查詢,因爲我不想表現出任何重複的結果toutcome表1個庫倫。下面是我的查詢

SELECT DISTINCT tapplicant.AppDate, tapplicant.Title, tapplicant.FirstName, tapplicant.LastName, tapplicant.Email, tapplicant.Postcode, tapplicant.AppIPAddress, toutcome.Status 
FROM tapplicant 
INNER JOIN toutcome 
ON tapplicant.AppAffID = toutcome.affID; 
+3

那麼問題是什麼?什麼是問題? – GolezTrol 2014-08-29 10:56:05

+1

這應該可以防止重複。有什麼問題?顯示一些示例輸入和預期輸出。 – Barmar 2014-08-29 10:56:18

+1

'DISTINCT'適用於整個'SELECT'子句,而不僅僅是一列。如果您只想在特定列中使用單個結果作爲值,請使用「GROUP BY」。 – Barmar 2014-08-29 10:57:37

回答

0

試試這個:

SELECT tapplicant.AppDate, tapplicant.Title, tapplicant.FirstName, 
tapplicant.LastName, tapplicant.Email, tapplicant.Postcode, 
tapplicant.AppIPAddress, toutcome.Status FROM tapplicant 
INNER JOIN toutcome 
ON tapplicant.AppAffID = toutcome.affID; 
GROUP BY tapplicant.AppDate, tapplicant.Title, 
0

我會建議你使用group_concat()看什麼的status值是否有對申請人:

SELECT a.AppDate, a.Title, a.FirstName, a.LastName, a.Email, a.Postcode, a.AppIPAddress, 
     group_concat(distinct o.Status) 
FROM tapplicant a LEFT JOIN 
    toutcome o 
    ON a.AppAffID = o.affID 
GROUP BY a.AppDate, a.Title, a.FirstName, a.LastName, a.Email, a.Postcode, a.AppIPAddress; 

這樣,如果有不止一個,你會知道的。

+0

嗨,Gordon,謝謝,查詢起作用,它只是toutcome.Status不顯示 – Trifactor 2014-08-29 11:41:28

+0

@Matt。 。 。也許桌子是空的?嘗試使用「左連接」。 – 2014-08-29 11:45:41