присоединиться к таблицам mysql и получить несколько строк - PullRequest
0 голосов
/ 03 марта 2012

У меня проблема с MySQL.

У меня есть 2 таблицы:

 Table A             Table B

 userId               userId
 name                 email
 email

Это отношение 1-> N (1 пользователь может иметь несколько электронных писем в таблице B)

Теперь я хочу импортировать своих пользователей в почтовую программу, я хочу сделать это в 1 запросе вместо нескольких запросов.

Мне хотелось бы получить следующее:

идентификатор пользователя, имя, адрес электронной почты

ex:

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 Ответ

4 голосов
/ 03 марта 2012

Буквальный ответ на ваш вопрос:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...