我有一个MySQL数据库三个表:查询规范化的数据库,3个表
- 店(PK stores_id)
- 状态(PK states_id)
- join_stores_states(PK join_id,FK stores_id,FK states_id )
“stores”表对于每个业务都有一行。 join_stores_states表将每个业务链接到它所处的每个状态。因此,一些企业有3个状态的存储,所以它们在join_stores_states中有3行,其他有1个状态的存储,所以它们在join_stores_states中只有1行。
我试图找出如何编写一个查询,将在一行中列出了每个企业,但仍显示所有它在美国。
这里是我到目前为止,这显然是给我每排出来join_stores_states的:
SELECT states.*, stores.*, join_stores_states.*
FROM join_stores_states
JOIN stores
ON join_stores_states.stores_id=stores.stores_id
JOIN states
ON join_stores_states.states_id=states.states_id
严格地说,这是它给我:
- 店1 |阿拉巴马州
- 商店1 |佛罗里达州
- 店铺1 |堪萨斯州
- 商店2 |蒙大拿州
- 商店3 |格鲁吉亚
- 商店3 |佛蒙特州
这更多的是什么,我希望看到:
- 店1 |阿拉巴马州,佛罗里达州,堪萨斯州
- 商店2 |蒙大拿州
- 商店3 |佛蒙特州乔治亚州
关于要尝试哪种查询方法的建议与正在运行的查询一样。
我认为这是一个dublicate – 2012-01-10 17:21:56
您使用的是哪种数据库和版本?基于特定供应商的SQL有多种解决方案。 – 2012-01-10 17:22:26
这可能很有用:http:// stackoverflow。com/questions/194852/concatenate-many-rows-into-a-single-text-string – 2012-01-10 17:25:07