我的 MySQL 数据库中有两个表(MAILS 和客户),它们都有一个列 email
存储电子邮件地址。
现在我想从这两个表中选择 emails.email!=customers.email
的每一行。
当我执行一个简单的 SELECT * FROM emails, customers WHERE emails.email != customers.email
时,我得到每个 emails.email 都列出了 customers 表中的数据。
我该怎么做?我可以使用 DISTINCT 但仅将其应用于来自客户表的数据吗?
最佳答案
如果您想要在 emails 表或 customers 表中找到一个唯一的电子邮件地址列表,但在 email 字段中它们之间没有匹配项,这将起到作用:
SELECT DISTINCT COALESCE(e.Email, c.Email) as Email
FROM Emails e FULL OUTER JOIN Customers c ON e.Email = c.Email
WHERE e.Email IS NULL OR c.Email IS NULL
巧合的是,这种情况是我发现 FULL OUTER JOIN 特别有用的极少数情况之一...
关于mysql - 从两个独立的表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9449785/