Mysql 创建视图?

Mysql 创建视图?,mysql,sql,database,join,view,Mysql,Sql,Database,Join,View,目前我有一个将多个表连接在一起的视图,这些表的设置方式如下: ACCOUNTS (id, first_name, last_name, etc.) CONTACTS (id, name, etc.) ACCOUNT_CONTACTS (id, account_id, contact_id) EMAIL_ADDR_BEAN_REL (id, bean_id (same as account_id / contact_id), email_address_id) EMAIL_ADDRESSE

目前我有一个将多个表连接在一起的视图,这些表的设置方式如下:

ACCOUNTS (id, first_name, last_name, etc.)

CONTACTS (id, name, etc.)

ACCOUNT_CONTACTS (id, account_id, contact_id)

EMAIL_ADDR_BEAN_REL (id, bean_id (same as account_id / contact_id), email_address_id)

EMAIL_ADDRESSES (email_address_id, email_address)
然而,我有两个表,我连接在一起,可以有多个电子邮件与一个id关联,下面是一个结构示例:

表:EMAIL\u ADDR\u BEAN\u REL

id       email_address_id     bean_id
1          2d5b8               61720
2          14355b              61720
表:电子邮件地址

id         email_address
2db58      WalterWhite@gmail.com
14355b     WW@gmail.com
创建视图时,我希望能够检索与一个用户关联的多封电子邮件。目前,这是我的视图代码,它只检索一封电子邮件:

SELECT AC.id, A.id AS account_id, A.name, A.description, A.industry, A.phone_fax, A.phone_office, A.shipping_address_street, A.shipping_address_city, A.shipping_address_state, A.shipping_address_postalcode, A.shipping_address_country, C.id AS contact_id, C.first_name, C.last_name, C.title, C.department, C.phone_home, C.phone_mobile, C.phone_work, C.primary_address_street, C.primary_address_city, C.primary_address_state, C.primary_address_postalcode, C.primary_address_country, EA.email_address, EA_C.email_address as email_contact
FROM ACCOUNTS A 
INNER JOIN ACCOUNTS_CONTACTS AS AC ON A.id = AC.account_id 
INNER JOIN CONTACTS AS C ON C.id = AC.contact_id 
LEFT JOIN EMAIL_ADDR_BEAN_REL AS ER ON ER.bean_id = A.id 
AND ER.bean_module = "Accounts"
LEFT JOIN EMAIL_ADDR_BEAN_REL AS ER_C ON ER_C.bean_id = C.id 
AND ER_C.bean_module = "Contacts"
LEFT JOIN EMAIL_ADDRESSES AS EA ON ER.email_address_id = EA.id
LEFT JOIN EMAIL_ADDRESSES AS EA_C ON ER_C.email_address_id = EA_C.id
此查询将返回与同一用户关联的两行,除电子邮件地址外,其他信息完全相同。我希望将第二个电子邮件地址(或其他电子邮件)添加到同一行,而不创建其他行


非常感谢您的帮助

这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。@Jatin:是的。问题是“我希望将第二个电子邮件地址(或其他电子邮件)添加到同一行,而不是创建其他行。”除了为他编写所有代码之外,这提供了一个缺少的线索--
GROUP\u CONCAT
加上
GROUP BY
@RickJames谢谢你,这非常有效,然而,我希望每封电子邮件都在一个单独的栏中。例如:email_1:abc@gmail.com,电邮:efg@gmail.com,电邮:hij@gmail.com等这会将所有电子邮件放在一列中,以逗号分隔。逗号可以是任何字符串
GROUP\u CONCAT(…分隔符“…”)
。但要获得单独的列,最好使用应用程序代码。@RickJames我不能使用这里建议的方法?:
SELECT ... GROUP_CONCAT(email_address) ... 
    FROM ...
    GROUP BY A.id;