我有两张表格如下:
剂
id | name
1 | abc
2 | def
存储
id | name | agent_id
1 | aaa | 1
2 | bbb | 1
我想这样结果:
agent_name | store_name
abc | aaa|bbb
不会
agent_name | store_name
abc | aaa
abc | bbb
哪个查询可以帮我这样做?我知道concat
函数,但我不知道如何在字符串之间添加字符|
。
答案 0 :(得分:4)
您可以使用GROUP_CONCAT(expr)
SELECT
a.name,
GROUP_CONCAT(s.name SEPARATOR '|') store_name
FROM
agents a
JOIN stores s
ON (a.id = s.agent_id)
GROUP BY a.id
注意请注意,结果会被截断为group_concat_max_len系统变量给出的最大长度,该变量的默认值为1024
答案 1 :(得分:0)
试试这个
SELECT a.name agent_name,CONCAT(a.name,'|',b.name)store_name
FROM agents a
INNER JOIN stores b ON a.id=b.id
CONCAT函数用于连接两个字符串以形成单个字符串。 来自代理表的这个“名称”与字符串'|'连接和来自商店表的“名称”使用连接来获得所需的结果