2014-08-29 70 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