MySQL错误代码:1349。View的SELECT包含FROM子句中的子查询

时间:2014-05-20 16:17:43

标签: mysql sql database

我正在尝试创建视图,但收到以下错误:

  

查看的SELECT包含FROM子句中的子查询

我正在运行以下命令。我似乎无法弄清楚如何用连接替换嵌套选择。任何帮助将不胜感激!

create view student_fee_basic as
select fsbc.*, ffp.name, ffp.amount 'fee'
from
(select sbc.*, ffc.name 'fname', ffc.id 'fid'
    from (select s.admission_no, s.first_name, bc.id 'bid', bc.code, bc.name
        from (select b.id, b.name, c.code
            from batches b, courses c
            where b.name = '2014-2015'
            and b.course_id = c.id) bc
        left join students s on bc.id = s.batch_id) sbc
    left join finance_fee_categories ffc on ffc.batch_id = sbc.bid
    where ffc.name = 'Basic Monthly') fsbc
left join finance_fee_particulars ffp on ffp.finance_fee_category_id = fsbc.fid;

3 个答案:

答案 0 :(得分:5)

MySQL不支持视图中的子查询:

  

子视图不能在视图的FROM子句中使用。

文档为here

最简单的解决方法是为每个级别使用一系列不同的视图。

您可以重写此查询以删除子查询。但是,如果没有明确的连接,我发现很难提供帮助。

答案 1 :(得分:3)

5.7版支持它。 因此,解决此问题的一种方法是将数据库迁移到较新版本

答案 2 :(得分:0)

升级到mysql-8,您的问题已解决。