0

我正在尝试创建一个 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 视图代码是什么?感谢您的时间和回复

4

3 回答 3

3

您正在寻找GROUP_CONCAT

CREATE VIEW view1 AS
SELECT email1,
    GROUP_CONCAT(email2) email2
FROM tbl1
GROUP BY email1

结果

| 电子邮件1 | 电子邮件2 |
--------------------------------------
| 别名1@u.com | john@u.com,joy@u.com |
| 别名2@u.com | 杰克@u.com |

查看演示

于 2013-05-06T18:50:42.137 回答
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

于 2013-05-06T18:54:11.047 回答
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;
于 2013-05-06T18:59:45.540 回答