我有两个mysql表:
表“小组”:
+--------+----------+---+
| id_panel | name_panel |
+-----------------------+
| 1 | Some name |
| 2 | Other name |
+--------+--------------+表"panel_power":
+--------+----------+----+
| id_panel | panel_power |
+------------------------+
| 1 | 300W |
| 1 | 500W |
| 2 | 450W |
| 2 | 300W |
+--------+---------------+我需要输出面板名称和他们所有相关的权力。
比如:
Some panel name: 300W, 500W
Other name: 450W, 300W发布于 2014-09-27 15:45:05
可以将组concat和concat组合起来,以便在一列中获得结果,但如果您计划将数据存储在这样的表中,则不建议这样做。
SELECT CONCAT(p.name_panel,
': ',
GROUP_CONCAT(pp.panel_power ORDER BY pp.panel_power SEPARATOR ', ')
) as "Provided Power"
FROM panels p
JOIN panel_powers pp ON p.id_panel = pp.id_panel
GROUP BY p.name_panelFiddle Demo
另外请注意,如果您计划将这些数据放在网页上的列表中或类似的内容中,我建议您提取与名称面板相关的id,并将其作为数据id项列在列表中。这样你就可以轻松地拔出它以防你需要击中服务器..。如果您不这样做,那么您将不得不尝试解析出name_panel以确定它属于何处。
发布于 2014-09-27 15:43:27
您可以使用group_concat()函数:
select p.name_panel, group_concat(pp.panel_power separator ', ') as powers
from panels p join
panel_powers pp
on pp.id_panel = p.id
group by p.name_panel;https://stackoverflow.com/questions/26076323
复制相似问题