我有两个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
答案 0 :(得分:2)
你可以将group 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_panel
作为旁注,如果您打算将这些数据放在网页上的列表或类似的内容中,我建议您提取与名称面板关联的ID,并将其作为数据ID项目放在您的网页上列表..这样你可以很容易地将它拉出来,因为你需要点击服务器...如果你不这样那么你将不得不尝试解析name_panel以找出它所属的位置
答案 1 :(得分:1)
您可以使用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;