当前位置: 首页 > 面试题库 >

View的SELECT在FROM子句中包含一个子查询

明安阳
2023-03-14
问题内容

我有两个表,我需要创建一个视图。这些表是:

credit_orders(id, client_id, number_of_credits, payment_status)
credit_usage(id, client_id, credits_used, date)

我使用以下查询来执行此操作。不带“创建视图”部分的查询运行良好,但带有“创建视图”的查询则显示错误“视图的SELECT在FROM子句中包含子查询”。可能是什么问题和可能的解决方案:

create view view_credit_status as 
(select credit_orders.client_id, 
        sum(credit_orders.number_of_credits) as purchased, 
        ifnull(t1.credits_used,0) as used 
 from credit_orders
 left outer join (select * from (select credit_usage.client_id, 
                                        sum(credits_used) as credits_used 
                                 from credit_usage 
                                 group by credit_usage.client_id) as t0
                  ) as t1 on t1.client_id = credit_orders.client_id
 where credit_orders.payment_status='Paid'
 group by credit_orders.client_id)

问题答案:

根据文档:

MySQL文档

  • SELECT语句在FROM子句中不能包含子查询。

解决方法是为每个子查询创建一个视图。

然后从您的视图中访问这些视图 view_credit_status



 类似资料:
  • 我有一个Spring Boot应用程序。在其中,我有一个SQL查询,需要创建一个子查询,内部将该子查询的结果与另一个表连接,然后从该内连接的结果中进行选择。但是很明显,JPA不允许您在OF子句中使用子查询(我假设既不使用JPQL也不使用Criteria API)。有没有办法绕过这个? 我考虑过将子查询的结果存储在一个临时实体中(理想情况下不创建可持久化到DB的表),然后从存储在这些实体中的数据中进

  • 问题内容: 我们正在开发一个使用EJB连接到数据库的Web应用程序。 在我们的数据库模型中,我们有一个移动设备表,另一个有功能表,最后一个有手机模型映射功能值的表。模型(id_model,…)功能(id_feature,…)model_features(id_model,id_feature,值) 我们想要执行一个查询,以按匹配特征的数量对模型进行排序。就是说,我们传递了一个要匹配的功能列表(即从

  • SELECT 语句,FROM 子句示例 下列示例假设在员工表中存在一个假设的工资字段。请注意,此字段 实际上在 Northwind 数据库员工表之中并不存在。 此示例创建一个 dynaset 型 Recordset,基于 SQL 语句选择在员工表中的所有纪录的姓和名字段。它调用 EnumFields 过程,且该过程打印 Recordset 对象的内容到“调试”窗口。 Sub SelectX1()

  • 问题内容: 当表开始增长时,我担心WHERE子句中IN的性能。有没有人对这种查询有更好的策略?子查询返回的记录数比TradeLine表中的记录数增长得慢得多。TradeLine表本身以每天10个的速度增长。 谢谢你。 编辑:我使用了将子查询从WHERE移到FROM的想法。我对有助于此新查询的所有答案投了赞成票。 问题答案: 子句中的子查询不依赖于外部查询中的任何内容。您可以安全地将其移到子句中;一

  • 问题内容: 如何使用Criteria编写以下SQL: 问题答案: 要使用NHibernate,产生如下查询: 我们必须选择: 将子选择映射为实体。 创建原始SQL查询 第一种选择是创建一些,并将其映射为一个实体。如果我们不喜欢视图(或无法创建视图),则可以使用NHibernate映射元素element的功能 : 第二种选择是关于使用NHibernate API创建本机/原始SQL: 它没有从映射中

  • 问题内容: 我正在尝试作为请求执行查询,以便从我创建的索引中提取数据。索引中的数据是DB 的表,但是通过进行配置。 这是我的不带IN子句的请求: http:// localhost:9200 / response_summary / search?q = api:“位置” + AND + transactionoperationstatus:“已收费” + AND + operatorid =’D