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)
+0
可能重复的[MySQL:在FROM子句限制中查看子查询](http://stackoverflow.com/questions/206062/mysql-view-with-subquery-in-the-from-clause-limitation) –
+0
@MattFenwick,不,它不是 - 那个查询可以很容易地被重写,这在一般情况下是不可能的 –
+0
从10.2.1版本的mariadb'10.2'支持子查询请参阅 - https://jira.mariadb.org/browse/MDEV-3944 –