2014-05-20 46 views
1

我試圖創建一個視圖,但出現以下錯誤的子查詢:MySQL的錯誤代碼:1349視圖的SELECT語句包含在FROM子句中

View's SELECT contains a subquery in the FROM clause

我運行下面的命令。我似乎無法弄清楚如何用連接替換嵌套選擇。任何幫助將非常感激!

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; 
+0

可能重複的[MySQL:查看子查詢在FROM子句限制](http://stackoverflow.com/questions/206062/mysql-view-帶有子查詢的子句限制) –

回答

3

MySQL不支持子查詢的意見:

Subqueries cannot be used in the FROM clause of a view.

文檔是here

最簡單的解決方法是對每個級別使用一系列不同的視圖。

您可能可以重寫此查詢以刪除子查詢。但是,如果沒有明確的加入,我覺得很難提供幫助。

+0

好極了!謝謝!我能夠構建連接而不使用嵌套選擇;似乎我只需要相信它可以做到。 – haanimasood

2

版本5.7支持它。 因此,解決它的一種方法是將您的數據庫遷移到較新的版本

相關問題