【问题标题】:How can I add a where clause to a right outer join union left outer join?如何将 where 子句添加到右外连接联合左外连接?
【发布时间】:2023-03-04 22:01:01
【问题描述】:

我正在使用以下 SQL,并且想知道如何以及在何处放置 where 子句。这样我就可以将所有结果带入 id=2 的位置?

SELECT * 
FROM public_tips 
LEFT OUTER JOIN likes
USING (id) 
UNION 
SELECT * 
FROM likes 
RIGHT OUTER JOIN public_tips
USING (id)

我试过了

SELECT * 
FROM public_tips WHERE id=2
LEFT OUTER JOIN likes
USING (id) 
UNION 
SELECT * 
FROM likes WHERE id=2
RIGHT OUTER JOIN public_tips
USING (id)

但我得到一个语法错误!

【问题讨论】:

  • from 子句和 join 子句之后的位置

标签: mysql sql left-join right-join


【解决方案1】:

where 子句在from 子句之后,join 子句是from 子句的一部分:

SELECT * 
FROM public_tips
LEFT OUTER JOIN likes
USING (id) 
WHERE public_tips.id=2
UNION 
SELECT * 
FROM likes 
RIGHT OUTER JOIN public_tips
USING (id)
WHERE public_tips.id=2

【讨论】:

  • 是否可以从 id=2 的公共提示中选择*,然后在单个查询中计算 id=2 的 likes.column_name?
猜你喜欢
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
  • 2014-02-06
  • 2017-07-04
  • 2016-05-12
  • 1970-01-01
相关资源
最近更新 更多