view select不能包含from子句

时间:2015-06-05 12:08:52

标签: mysql database

我有一个SQL查询。当我运行它成功执行时,但当我尝试使用查询创建一个视图时,它会显示每个子查询创建一个视图。

SOS。

SELECT `product_category_vendor_id`, 
       ct1.category_id, 
       ct1.category_name, 
       c1.`product_id`, 
       p1.product_name, 
       c1.`vendor_id`, 
       v1.vendor_name, 
       c1.`product_purchase_price`, 
       c1.product_vendor_qty, 
       d1.available 
FROM   (SELECT `product_category_vendor_id`, 
               a1.`product_id`, 
               a1.`vendor_id`, 
               a1.`product_purchase_price`, 
               b2.product_vendor_qty 
        FROM   (SELECT `product_category_vendor_id`, 
                       `product_id`, 
                       `vendor_id`, 
                       `product_purchase_price` 
                FROM   tbl_inksand_product_category_vendor 
                WHERE  product_category_vendor_id IN 
                       (SELECT 
                       Max(product_category_vendor_id) AS 
                       `Product_Category_Vendor_Id` 
                                                      FROM 
                       tbl_inksand_product_category_vendor 
                                                      WHERE  ( 
                       product_category_vendor_status = 
                       'A' ) 
                                                      GROUP  BY product_id, 
                                                                `vendor_id` 
                                                      ORDER  BY `product_id`)) 
               AS a1 
               JOIN (SELECT `product_id`, 
                            `vendor_id`, 
                            Sum(`product_vendor_qty`) AS Product_Vendor_Qty 
                     FROM   tbl_inksand_product_category_vendor 
                     GROUP  BY product_id, 
                               `vendor_id` 
                     ORDER  BY `product_id`) b2 
                 ON a1.`product_id` = b2.`product_id` 
                    AND a1.`vendor_id` = b2.`vendor_id`) c1 
       JOIN (SELECT `product_id`, 
                    `vendor_id`, 
                    Count(`item_id`) AS Available 
             FROM   `tbl_inksand_item_dtls` 
             WHERE  `product_item_status` = 'Not Sale' 
             GROUP  BY `product_id`, 
                       `vendor_id`) d1 
         ON c1.`product_id` = d1.`product_id` 
            AND c1.`vendor_id` = d1.`vendor_id` 
       JOIN tbl_inksand_vendor AS v1 
         ON c1.`vendor_id` = v1.`vendor_id` 
       JOIN tbl_inksand_product p1 
         ON p1.product_id = c1.`product_id` 
       JOIN tbl_inksand_category ct1 
         ON ct1.category_id = p1.category_id 

1 个答案:

答案 0 :(得分:0)

  

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

来源:https://dev.mysql.com/doc/refman/5.0/en/view-restrictions.html

所以是的,这是创造单独观点的正确建议。