在SQL子查询中连接任意长的匹配列表

时间:2013-10-15 13:24:47

标签: sql firebird

想象2个表(相当愚蠢的例子,但为了简单起见,这里你去)

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 个答案:

答案 0 :(得分:1)

试试这个:

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