加入mysql表并获取多行

时间:2012-03-03 02:09:22

标签: mysql sql join

我遇到了MySQL问题。

我有两张桌子:

 Table A             Table B

 userId               userId
 name                 email
 email

这是一个关系1-> N(1个用户可以在表B中有多个电子邮件)

现在我想将我的用户导入邮件程序,我希望在1个查询中进行,而不是多个查询。

我想要的是以下内容:

用户ID,姓名,电子邮件

前:

1 , John Doe , xxx@gmail.com    (This email comes from Table A)
1 , John Doe , zzz@hotmail.com  (This email comes from Table B)

目前我有以下查询返回多行,但问题是字段不一样

我得到类似的东西:

Table A.name , Table A.email , Table B. email  etc ..


SELECT
jos_users.userId,
jos_members_webAddress.email2,
jos_users.uniqueId,
jos_users.firstName,
jos_users.lastName,
jos_users.username,
jos_users.email


FROM
jos_users
INNER JOIN jos_members_webAddress ON jos_users.userId = jos_members_webAddress.memberId

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您问题的字面答案:

SELECT userId, name, email
FROM tableA
UNION
SELECT tableB.userId, tableA.name, tableB.email
FROM tableA
JOIN tableB ON tableA.userId = tableB.userId

更好地回答你的问题,除非你能在评论中给出我的第一个回答,并给出一个可靠的答案:

email删除tableA,将所有电子邮件都放在tableB中,然后它只是UNION下方答案的一部分。