2013-10-15 26 views
0

想象2個表(而愚蠢的例子,但爲了簡單起見,在這裏你去)串聯比賽的任意一長串SQL子查詢

words 
    word_id 

letters 
    letter 
    word_id 

如何可以選擇所有的字,而選擇屬於所有字母一個詞並將它們連接到所述單詞?重要的是這些字母按照它們在表格中出現的順序返回,因爲這些字母可能會混入其他字詞中,但順序是正確的。

|word_id| |word_id|letter| 
+-------+ +-------+------+ 
|  1| |  1|  H| 
|  2| |  2|  B| 
      |  2|  Y| 
      |  1|  I| 
      |  2|  E| 

應該返回

|word_id|word| 
+-------+----+ 
|  1| HI| 
|  2| BYE| 

任何方式在純SQL來做到這一點?

回答

1

試試這個:

SELECT word_id, group_concat (letter,'') FROM letters GROUP BY word_id;

+1

火鳥沒有'group_concat',它有['list'](http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/ html/langrefupd25-aggrfunc-list.html)而不是(它類似於'group_concat') –

+0

這些引號必須是單個''',否則它會拋出一個像'unknown column'這樣的錯誤,這沒有意義 – lordvlad

+0

謝謝,會更新答案。 MySQL不關心這一點。 – Ashalynd