2013-12-17 22 views
0

我有以下表内连接单个表 - MySQL的

教练(coach_code,coach_name,year_of_birth)

我需要创建一个返回对,出生在同一年的教练查询和今年。每一双应该只出现一次。 (教练1,教练2,出生年份)

问题是它是同一张表并且内部连接不起作用。

有什么建议吗?

+2

内用相同的表工作就好了连接限制。只要给他们别名。 – Barmar

回答

1
SELECT c1.coach_code AS coach1, c2.coach_code AS coach2, c1.year_of_birth 
FROM coaches AS c1 
JOIN coaches AS c2 ON c1.year_of_birth = c2.year_of_birth AND c1.coach_code < c2.coach_code 
+0

从哪里来的c1和c2? – Ohad

+0

它们是'FROM'和'JOIN'子句中分配的别名。 – Barmar

+0

你不应该写教练AS c1吗? – Ohad

1

您可以使用GROUP_CONCAT但要记住有字符的GROUP_CONCAT

SELECT GROUP_CONCAT(coach_name SEPARATOR ',') as `pair`,year_of_birth 
FROM coaches 
GROUP BY year_of_birth 

GROUP_CONCAT(expr)

+0

如果有3个或更多同一出生年份的教练,这将结合所有这些。他想要配对。 – Barmar