我得到了兩個帶有電子郵件地址的表和一個帶有與用戶表的外鍵關系的第三個表,我希望取回一些不同的電子郵件地址。這是資料的表示:
表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
并排除[email protected]和[email protected]。
uj5u.com熱心網友回復:
我相信你想要做的是union在表 1 和表 3 中的except電子郵件之間,表 1中用戶的電子郵件出現在表 2 中:
(select "Email" from table1
union select "email" from table3)
except
(select "Email" from Table1 inner join Table2
on Table1."Id" = Table2."user_id")
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395790.html
標籤:PostgreSQL的
