2013-12-17 21 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