mysql - 加入 mysql 表并获取多行

标签 mysql sql join

我遇到了 MySQL 的问题。

我有 2 个表:

 Table A             Table B

 userId               userId
 name                 email
 email

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

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

我想要的是以下内容:

用户名、姓名、邮箱

例如:

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

感谢帮助

最佳答案

您问题的字面答案:

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

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

tableA中删除email,让tableB中的所有email,那么就是UNION<下面的部分答案.

关于mysql - 加入 mysql 表并获取多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542763/

相关文章:

python - 使用 python 更改和运行 SQL 查询

php - 等级和经验点系统

mysql - 加入同一张 table 两次

mysql - 加速(重写?)不在子选择查询中

Mysql:如何从数据库列中选择不同的值

mysql - 如何合并不同表的SUM值? (很好的表现?)

mysql - 在MySQL中一次从两个表中选择多行

mysql - 如何查看拥有相同授权的所有用户

mysql - 根据左连接数重复行 X 次

postgresql XOR 加入数组值或 null?