我正在尝试创建一个mysql视图,它将一个表中的多个值拉到视图中的一列中。我正在为postfix使用的别名表尝试不同的方法,以便我可以更好地管理任何给定别名的添加和删除
表
john@u.com alias1@u.com
joy@u.com alias1@u.com
jack@u.com alias2@u.com
查看
alias1@u.com john@u.com,joy@u.com
alias2@u.com jack@u.com
创建此视图的mysql视图代码是什么?感谢您的时间和回复
答案 0 :(得分:3)
您正在寻找GROUP_CONCAT
:
CREATE VIEW view1 AS
SELECT email1,
GROUP_CONCAT(email2) email2
FROM tbl1
GROUP BY email1
<强>结果强>
| EMAIL1 | EMAIL2 | --------------------------------------- | alias1@u.com | john@u.com,joy@u.com | | alias2@u.com | jack@u.com |
答案 1 :(得分:0)
您可以在定义视图时使用group_concat
select column2, group_concat(column1)
from table1
group by column2
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
答案 2 :(得分:0)
创建表:
create table email (
id serial,
address varchar(254),
alias varchar(254)
);
选择声明:
select group_concat(address) as addresses, alias
from email
group by alias;
创建视图:
create view aliases as
select group_concat(address) as addresses, alias
from email group by alias;