0 レビュー
2 回答
php-複数の行の複数のフィールドをコンマで連結します
結合テーブルで接続された2つのテーブルがあります。次のようになります
servers serverInstances instances
| id | ip | | id | sID | iID | | id | name |
|____|____________| |____|_____|_____| |____|______|
| 11 | 10.0.0.100 | | 1 | 11 | 40 | | 40 | real |
| 12 | 10.0.0.200 | | 2 | 11 | 41 | | 41 | fake |
| 3 | 12 | 45 | | 45 | test
以下のクエリを使用すると、以下のデータを取得できます
|SELECT s.ip, i.name
FROM servers AS s
JOIN serverInstances AS si ON s.ID = si.sID
JOIN Instances AS i ON si.iID = i.ID
| ip | name |
|____________|______|
| 10.0.0.100 | real |
| 10.0.0.100 | fake |
| 10.0.0.200 | test
問題が発生しているのは、上記の情報を取得し、次の情報を返すクエリを作成することです。
|| ip | instances |
|____________|____________|
| 10.0.0.100 | real, fake |
| 10.0.0.200 | test |
このクエリを作成するための簡単で動的な方法はありますか?
わからない
0
レビュー
答え :
解決策:
コメントでbwoebiが述べているように、group_concatはこれを提供します。
SELECT s.ip, group_concat(DISTINCT i.name ORDER BY i.name ASC SEPARATOR ", " ) as instances
FROM servers AS s
JOIN serverInstances AS si ON s.ID = si.sID
JOIN Instances AS i ON si.iID = i.ID
GROUP BY s.ip;
わからない
0
レビュー
答え :
解決策:
これでうまくいくと思います
SELECT s.ip, GROUP_CONCAT(i.name)
FROM servers AS s
JOIN serverInstances AS si ON s.ID = si.sID
JOIN Instances AS i ON si.iID = i.ID
GROUP BY s.ip
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。