我得到了两个带有电子邮件地址的表,第三个表与用户表有外键关系,我希望得到一些不同的电子邮件地址。以下是数据的表示:
表1(用户(
| Id | Email |
| -------- | -------------- |
| 1 | erik@test.com |
| 2 | joe@test.com |
| 3 | jack@mail.com |
表2-用户表的外键
| Id | user_id |
| -------- | -------------- |
| 19 | 1 |
| 45 | 2 |
表3(与其他两个表没有关系(
| Id | email |
| -------- | -----------------|
| 12 | erik@test.com |
| 39 | steph@gmail.com |
如何从表3和表1中获取所有不同的电子邮件地址,其中表2中不存在电子邮件(通过user_id.email获取(
所以在上面的场景中,我想回到:
jack@mail.com
steph@gmail.com
并且排除CCD_ 1和CCD_。
我相信你想做的是表1和表3中的电子邮件之间的union
,表1中用户的except
电子邮件出现在表2:中
(select "Email" from table1
union select "email" from table3)
except
(select "Email" from Table1 inner join Table2
on Table1."Id" = Table2."user_id")
Fiddle