0

同様のトピックを見て、いくつかの自己結合を試みましたが、適用方法がわかりませんでした。

Pervasive SQL 11 で次のようなテーブルを作成します。

kit|part

1 | 21

1 | 22

1 | 23

1 | 24

2 | 30

2 | 31   
....

これを 1 行で返したい

1 | 21 | 22 | 23 | 24

2 | 30 | 31

関連するパーツの数は 1 から 30 以上まで変化し、キットごとに 1 行のみを返す必要があります

これを達成するための最良の方法は何ですか?

4

1 に答える 1

0

自己結合は必要ありません。(MySQL を想定して) GROUP_CONCATを使用した GROUP BY のみです。

SELECT kit, GROUP_CONCAT(part)
FROM table
GROUP BY kit

順序を選択するか、セパレータを追加できます。

SELECT kit, GROUP_CONCAT(DISTINCT part ORDER BY part ASC SEPARATOR ' ')
FROM table
GROUP BY kit

ただし、結果を個別の列に格納したい場合、すべてのテーブルを取得するのに十分な回数を自動的に結合する動的自己結合を MySQL で作成することはできず、MySQL はピボットをサポートしていません。ただし、他の (R)DBMS はそうかもしれません。

于 2012-04-17T08:15:29.893 に答える