Query Construction, объединяющий UNION и LEAST - PullRequest
1 голос
/ 18 мая 2011

У меня есть таблица подписки на электронную почту и таблица пользователей. Мне нужно объединить эти два, чтобы получить все электронные письма, так как возможно создать учетную запись без подписки и наоборот. Пока все достаточно просто:

SELECT email FROM emailcapture
UNION
SELECT email FROM cpnc_User

Теперь я получаю полный список всех писем. Для каждого письма в этом объединенном списке мне нужно добавить дополнительную информацию: дату создания. Таблицы emailcapture и cpnc_User имеют поле «создан». Дата создания должна быть более ранней из двух дат, если обе даты существуют, или, если существует только одна, а другая имеет значение NULL, это должна быть просто та, которая существует.

Как я могу изменить этот запрос, чтобы он возвращал эту дополнительную информацию, дату создания? Помните, что новый запрос, который я ищу, должен возвращать ровно столько же строк, сколько и запрос выше.

Спасибо, Ионы

1 Ответ

2 голосов
/ 18 мая 2011
SELECT i.email, MIN(i.date_creation) FROM
(SELECT email, date_creation FROM emailcapture
UNION ALL
SELECT email, date_creation FROM cpnc_User) as InnerTable i
GROUP BY i.email 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...