【问题标题】:Converting RIGHT JOIN to LEFT OUTER JOIN for fetching the same data将 RIGHT JOIN 转换为 LEFT OUTER JOIN 以获取相同的数据
【发布时间】:2015-09-16 11:44:02
【问题描述】:

我有一个名为 Persons 的表,其中包含以下数据

以下查询将获取 Persons 表中不等于任何 PersonId 值的 pid 值:

select B.pid
from Persons A
RIGHT JOIN Persons B ON (A.PersonID = B.pid)
where A.PersonID IS NULL
  AND B.pid IS NOT NULL

有没有办法使用 LEFT OUTER JOIN 获取相同的数据?

【问题讨论】:

标签: mysql left-join right-join


【解决方案1】:

您应该使用left join 获得相同的结果,只需反转表格即可:

select B.pid
from Persons B LEFT JOIN
     Persons A
     ON A.PersonID = B.pid
where A.PersonID IS NULL AND B.pid IS NOT NULL

【讨论】:

  • like...没有在原始查询中使用那个 B.pid IS NOT NULL.. 左外连接会帮助解决这个问题吗?
猜你喜欢
  • 2012-10-08
  • 2013-03-10
  • 2013-05-02
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 2012-02-27
  • 2019-09-03
相关资源
最近更新 更多