扩展以下问题(多重选择语句),我想知道是否可以执行以下操作:
WITH
cte1 as (
SELECT * from cdr.Location
),
cte2 as (
SELECT * from cdr.Location
WHERE cdr.Location.someField = cte1.SomeField
)
select * from cte1 union select * from cte2
所以这里的重点是以下几行:
WHERE cdr.Location.someField = cte1.SomeField
我在cte2中的哪里引用cte1?
是的,您可以在后续CTE中引用先前声明的CTE:
WITH cte1 as (
SELECT t.*
FROM cdr.Location t),
cte2 as (
SELECT t.*
FROM cdr.Location t
JOIN cte1 c1 ON c1.somefield = t.someField)
SELECT *
FROM cte1
UNION
SELECT *
FROM cte2
笔记
顺便说一句:尝试在将来树立更好的榜样-这对您和所有试图帮助您的SO社区其他成员都是有益的。
问题内容: 在SQL中是否可以在同一查询的另一个CTE内的Common Table Expression内使用引用?这里有一个例子: 我在SQLite3中尝试了此方法,并且它起作用了,我只是想知道它是否是标准SQL的一部分。关于此论点的任何建议将不胜感激。非常感谢你! 问题答案: 这是CTE的三个重要属性: 您可以在后续的CTE中或查询的主体中引用CTE。 您可以多次引用任何给定的CTE。 CTE
问题内容: 我有这个,在设定的总数时我得到一个错误。为什么我不能多次访问CTE? 问题答案: A基本上是一次性视图。它只保留一个语句,然后自动消失。 您的选择包括: 重新定义第二次。从定义的末尾到您的之前,这就像复制粘贴一样简单。 将结果放入表格或变量中 将结果具体化为真实表并引用 稍微更改一下即可,只需从您的CTE: 。
问题内容: 我有一个类似以下的查询: 为了避免多次重复相同的表达式:我想定义一个CTE,并在select,where和group by表达式中使用查询该表 不幸的是,这不起作用,因为在创建 还有什么其他方法可以使我不重复这么多次? 问题答案: 使用,可用于定义别名字段,然后引用它们: 该仅仅是一个别名,不管你喜欢,你可以将其命名。
问题内容: 我有一个很长的查询,本质上是以下内容的扩展: 完成后,其中的where子句将有约40行。为了使此任务更容易,我希望做与以下类似的事情: 不幸的是,lease_id不是唯一字段,同一个suite_id可以有多个lease_id(因此,第二个查询不可用)。 鉴于此解决方案无法正常工作,是否有更好的方法来执行第一条更新语句? 问题答案: 您可以创建表类型并通过它传递值,如下所示: 如果您使用
本文向大家介绍10个mysql中select语句的简单用法,包括了10个mysql中select语句的简单用法的使用技巧和注意事项,需要的朋友参考一下 1、select语句可以用回车分隔 2、批量查询数据 3、使用concat连接查询的结果 返回"1-article content" 4、使用locate 用法: select locate("hello","hello baby");返回1 不存
问题内容: 在此系统中,我们存储产品,产品图像(产品可能有很多图像)和产品的默认图像。数据库: 如您所见,和,是循环参考。可以吗 问题答案: 不,那不行。表之间的循环引用是混乱的。请参阅这篇(已有十年的历史)文章:SQL By Design:循环参考 一些DBMS可以特别小心地处理这些问题,但是MySQL会遇到问题。 作为您的设计,第一选择是使两个FK之一为可空。这使您能够解决“鸡与蛋”问题(我应