我目前正在将MS access查询转换为SQL查询,并注意到在access查询中,它似乎正在将另一个查询连接到其他表。因此,我环顾四周,似乎该查询使查询看起来更整洁,而不需要在同一脚本中包含各种子查询
就像这样
FROM [query name] INNER JOIN [some other table]
在SQL中有类似这样的东西吗?
发布于 2011-03-30 02:12:30
中有类似这样的东西吗?
是。在SQL中,可能会使用WITH子句:
WITH someData AS
(
select a.col1, b.col2
from tableA a join tableB b
on (a.someKey = b.someKey)
),
...
select data1.col1, data1.col2, data2.col3
from someData data1 join tableC data2
on (data1.col1 = data2.anotherKey)
where ...视图也可以,但另一个要跟踪的数据库对象,如果使用物化视图,则需要担心刷新快照表等问题。我的建议是在可能的情况下与大量注释一起使用。
编辑:如果你发现自己一遍又一遍地问数据库的相同问题,那么视图(或mat视图)会更合适。但在其他情况下,请将逻辑保留在查询中。
发布于 2011-03-26 03:07:06
您可能正在寻找
视图基本上是SELECT查询的存储版本。它允许您引用结果集,而不必每次都重写查询。
发布于 2011-03-26 03:08:27
您可以将VIEW创建为查询,然后在另一个查询中引用该视图。
CREATE VIEW <viewname> AS <SELECT STATEMENT>然后
SELECT * FROM <viewname> INNER JOIN <other table>https://stackoverflow.com/questions/5436969
复制相似问题