У меня есть 2 таблицы
электронные письма и поля
электронные письма - это просто список электронных писем, а их уникальные идентификаторы и поля представлены в пятой нормальной форме (я думаю) со столбцом значений (данные идентификатора во втором столбце), столбец данных и идентификаторы, которые ссылаются на идентификаторы в первой таблице.
Например:
Таблица 1:
ID EMAIL
-- -----
1a2 Test@Test
2a3 email@email|
3a4 add@add
Таблица 2:
value Data ID
----- ------ ---
1 123 Main 1a2
2 John Smith 1a2
3 US 1a2
4 555-555-5555 1a2
В этом случае в таблице 2 показаны только данные для «1a2», поскольку они были единственными, которые их заполнили.
Поэтому я пытаюсьчтобы создать таблицу, которая связывает электронную почту с соответствующими кодами стран И также предоставляет электронные письма, которые не зарегистрировали коды стран в качестве значения Null
Я пытался использовать UNION для отображения всех электронных писем из таблицы 1 наТаблица 2 после объединения таблицы 1 и 2 по идентификатору, а затем с использованием где для значения, но в ней показаны все электронные письма, которые имеют правильный код страны, а затем дублируют их также в части UNIONed.
Это примериз того, что я получаю:
EMAIL COUNTRY CODE
----- ------------
test@test US
test@test NULL
email@email NULL
add@add NULL
Вы заметите, что test @ test дублирован из-за того, что у объединения нет нужного фильтра
Мой код выглядит так:
select
e.email as "Email",
f.value as "Country Code"
from
email e
join
fields f
ON e.id = f.id
where
f.value = '3'
[[and f.data like concat({{CountryCode}},'%')]]
-- curly brackets are for user entered variables
В любом случае, все сказанои сделано.Я ищу таблицу, которая выглядит примерно так без No Duplicates
EMAIL COUNTRY CODE
----- ------------
test@test US
email@email NULL
add@add NULL