Changeset 17549


Ignore:
Timestamp:
2008/08/21 00:02:54 (12 years ago)
Author:
Seasoft
Message:

・VIEWを改訂。簡素化と高速化を目論む。(従来互換を考慮していますが、影響範囲が大きいので不具合もあるかと思います。また、MySQL v4系は、環境が無いため未テストです。バグレポートをお願いします。)
r17509 の不具合対応。
r17548 の応急処置を正式に対応。
・[検索結果をすべて削除]でエラーが発生する不具合を修正。

Location:
branches/comu-ver2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php

    r17537 r17549  
    169169 
    170170    /** 
    171      * SQL の中の View の存在をチェックする. 
    172      * 
    173      * @access private 
    174      * @param string $sql SQL 文 
    175      * @return bool Viewが存在しない場合 false 
    176      */ 
    177     function sfInArray($sql){ 
    178         $arrView = $this->viewToSubQuery(); 
    179  
    180         foreach($arrView as $key => $val){ 
    181             if (strcasecmp($sql, $val) == 0){ 
    182                 $changesql = eregi_replace("($key)", "$val", $sql); 
    183                 $this->sfInArray($changesql); 
    184             } 
    185         } 
    186         return false; 
    187     } 
    188  
    189     /** 
    190171     * View をインラインビューに変換する. 
    191172     * 
     
    195176     */ 
    196177    function sfChangeView($sql){ 
    197  
     178         
    198179        $arrViewTmp = $this->viewToSubQuery(); 
    199  
    200         // viewのwhereを変換 
     180         
     181            // viewのwhereを変換 
    201182        foreach($arrViewTmp as $key => $val){ 
    202183            $arrViewTmp[$key] = strtr($arrViewTmp[$key], $this->getWhereConverter()); 
    203184        } 
    204  
    205         // viewを変換 
     185             
     186            // viewを変換 
    206187        $changesql = strtr($sql, $arrViewTmp); 
    207  
     188         
    208189        return $changesql; 
    209190    } 
     
    258239     */ 
    259240    function viewToSubQuery() { 
     241        $sql['vw_products_allclass_detail'] =<<< __EOS__ 
     242            ( 
     243                SELECT 
     244                    dtb_products.product_id, 
     245                    dtb_products.name, 
     246                    dtb_products.deliv_fee, 
     247                    dtb_products.sale_limit, 
     248                    dtb_products.sale_unlimited, 
     249                    dtb_products.maker_id, 
     250                    dtb_products.rank, 
     251                    dtb_products.status, 
     252                    dtb_products.product_flag, 
     253                    dtb_products.point_rate, 
     254                    dtb_products.comment1, 
     255                    dtb_products.comment2, 
     256                    dtb_products.comment3, 
     257                    dtb_products.comment4, 
     258                    dtb_products.comment5, 
     259                    dtb_products.comment6, 
     260                    dtb_products.note, 
     261                    dtb_products.file1, 
     262                    dtb_products.file2, 
     263                    dtb_products.file3, 
     264                    dtb_products.file4, 
     265                    dtb_products.file5, 
     266                    dtb_products.file6, 
     267                    dtb_products.main_list_comment, 
     268                    dtb_products.main_list_image, 
     269                    dtb_products.main_comment, 
     270                    dtb_products.main_image, 
     271                    dtb_products.main_large_image, 
     272                    dtb_products.sub_title1, 
     273                    dtb_products.sub_comment1, 
     274                    dtb_products.sub_image1, 
     275                    dtb_products.sub_large_image1, 
     276                    dtb_products.sub_title2, 
     277                    dtb_products.sub_comment2, 
     278                    dtb_products.sub_image2, 
     279                    dtb_products.sub_large_image2, 
     280                    dtb_products.sub_title3, 
     281                    dtb_products.sub_comment3, 
     282                    dtb_products.sub_image3, 
     283                    dtb_products.sub_large_image3, 
     284                    dtb_products.sub_title4, 
     285                    dtb_products.sub_comment4, 
     286                    dtb_products.sub_image4, 
     287                    dtb_products.sub_large_image4, 
     288                    dtb_products.sub_title5, 
     289                    dtb_products.sub_comment5, 
     290                    dtb_products.sub_image5, 
     291                    dtb_products.sub_large_image5, 
     292                    dtb_products.sub_title6, 
     293                    dtb_products.sub_comment6, 
     294                    dtb_products.sub_image6, 
     295                    dtb_products.sub_large_image6, 
     296                    dtb_products.del_flg, 
     297                    dtb_products.creator_id, 
     298                    dtb_products.create_date, 
     299                    dtb_products.update_date, 
     300                    dtb_products.deliv_date_id, 
     301                    T4.product_code_min, 
     302                    T4.product_code_max, 
     303                    T4.price01_min, 
     304                    T4.price01_max, 
     305                    T4.price02_min, 
     306                    T4.price02_max, 
     307                    T4.stock_min, 
     308                    T4.stock_max, 
     309                    T4.stock_unlimited_min, 
     310                    T4.stock_unlimited_max, 
     311                    T4.class_count 
     312                FROM 
     313                    dtb_products 
     314                    LEFT JOIN 
     315                        ( 
     316                            SELECT 
     317                                product_id, 
     318                                MIN(product_code) AS product_code_min, 
     319                                MAX(product_code) AS product_code_max, 
     320                                MIN(price01) AS price01_min, 
     321                                MAX(price01) AS price01_max, 
     322                                MIN(price02) AS price02_min, 
     323                                MAX(price02) AS price02_max, 
     324                                MIN(stock) AS stock_min, 
     325                                MAX(stock) AS stock_max, 
     326                                MIN(stock_unlimited) AS stock_unlimited_min, 
     327                                MAX(stock_unlimited) AS stock_unlimited_max, 
     328                                COUNT(*) as class_count 
     329                            FROM dtb_products_class 
     330                            GROUP BY product_id 
     331                        ) AS T4 
     332                        ON dtb_products.product_id = T4.product_id 
     333            ) 
     334__EOS__; 
     335 
    260336        return array( 
    261337            "vw_cross_class" => ' 
     
    350426                ON T1.product_id = T2.product_id_sub) ', 
    351427 
    352             "vw_products_allclass" => ' 
    353    (SELECT T1.product_id, 
    354            product_code_min, 
    355            product_code_max, 
    356            price01_min, 
    357            price01_max, 
    358            price02_min, 
    359            price02_max, 
    360            stock_min, 
    361            stock_max, 
    362            stock_unlimited_min, 
    363            stock_unlimited_max, 
    364            del_flg, 
    365            status, 
    366            name, 
    367            comment1, 
    368            comment2, 
    369            comment3, 
    370            main_list_comment, 
    371            main_image, 
    372            main_list_image, 
    373            product_flag, 
    374            deliv_date_id, 
    375            sale_limit, 
    376            point_rate, 
    377            sale_unlimited, 
    378            create_date, 
    379            deliv_fee, 
    380            update_date, 
    381            rank 
    382            ,(SELECT rank AS category_rank 
    383                FROM dtb_category AS T4 
    384               WHERE T1.category_id = T4.category_id) as category_rank 
    385            ,(SELECT category_id AS sub_category_id  
    386                FROM dtb_category T4  
    387               WHERE T1.category_id = T4.category_id) as category_id 
    388       FROM (SELECT T0.product_id, 
    389                    T0.del_flg, 
    390                    T0.status, 
    391                    T0.name, 
    392                    T0.comment1, 
    393                    T0.comment2, 
    394                    T0.comment3, 
    395                    T0.main_list_comment, 
    396                    T0.main_image, 
    397                    T0.main_list_image, 
    398                    T0.product_flag, 
    399                    T0.deliv_date_id, 
    400                    T0.sale_limit, 
    401                    T0.point_rate, 
    402                    T0.sale_unlimited, 
    403                    T0.create_date, 
    404                    T0.deliv_fee, 
    405                    T00.category_id, 
    406                    T0.rank, 
    407                    T0.update_date 
    408               FROM dtb_products AS T0 
    409          LEFT JOIN dtb_product_categories AS T00 
    410              USING (product_id)) AS T1  
    411 RIGHT JOIN (SELECT product_id as product_id_sub, 
    412                    MIN(product_code) AS product_code_min, 
    413                    MAX(product_code) AS product_code_max, 
    414                    MIN(price01) AS price01_min, 
    415                    MAX(price01) AS price01_max, 
    416                    MIN(price02) AS price02_min, 
    417                    MAX(price02) AS price02_max, 
    418                    MIN(stock) AS stock_min, 
    419                    MAX(stock) AS stock_max, 
    420                    MIN(stock_unlimited) AS stock_unlimited_min, 
    421                    MAX(stock_unlimited) AS stock_unlimited_max 
    422               FROM dtb_products_class GROUP BY product_id) AS T2  
    423                 ON T1.product_id = T2.product_id_sub 
    424             ) ', 
    425  
    426             "vw_products_allclass_detail" => ' 
    427                 (SELECT product_id,price01_min,price01_max,price02_min,price02_max,stock_min,stock_max,stock_unlimited_min,stock_unlimited_max, 
    428                 del_flg,status,name,comment1,comment2,comment3,deliv_fee,main_comment,main_image,main_large_image, 
    429                 sub_title1,sub_comment1,sub_image1,sub_large_image1, 
    430                 sub_title2,sub_comment2,sub_image2,sub_large_image2, 
    431                 sub_title3,sub_comment3,sub_image3,sub_large_image3, 
    432                 sub_title4,sub_comment4,sub_image4,sub_large_image4, 
    433                 sub_title5,sub_comment5,sub_image5,sub_large_image5, 
    434                 product_flag,deliv_date_id,sale_limit,point_rate,sale_unlimited,file1,file2,category_id 
    435                 FROM ( SELECT * FROM (dtb_products AS T1 RIGHT JOIN 
    436                 (SELECT 
    437                 product_id AS product_id_sub, 
    438                 MIN(price01) AS price01_min, 
    439                 MAX(price01) AS price01_max, 
    440                 MIN(price02) AS price02_min, 
    441                 MAX(price02) AS price02_max, 
    442                 MIN(stock) AS stock_min, 
    443                 MAX(stock) AS stock_max, 
    444                 MIN(stock_unlimited) AS stock_unlimited_min, 
    445                 MAX(stock_unlimited) AS stock_unlimited_max 
    446                 FROM dtb_products_class GROUP BY product_id) AS T2 
    447                 ON T1.product_id = T2.product_id_sub ) ) AS T3 LEFT JOIN (SELECT rank AS category_rank, category_id AS sub_category_id FROM dtb_category) AS T4 
    448                 ON T3.category_id = T4.sub_category_id) ', 
     428            "vw_products_allclass" => " 
     429            ( 
     430                SELECT 
     431                    alldtl.*, 
     432                    dtb_category.rank AS category_rank, 
     433                    T2.category_id 
     434                FROM 
     435                    {$sql['vw_products_allclass_detail']} AS alldtl 
     436                    LEFT JOIN 
     437                        dtb_product_categories AS T2 
     438                        ON alldtl.product_id = T2.product_id 
     439                    LEFT JOIN 
     440                        dtb_category 
     441                        ON T2.category_id = dtb_category.category_id 
     442            ) ", 
     443 
     444            "vw_products_allclass_detail" => $sql['vw_products_allclass_detail'], 
    449445 
    450446            "vw_product_class" => ' 
  • branches/comu-ver2/data/class/helper/SC_Helper_DB.php

    r17509 r17549  
    928928        $sql .= " FROM dtb_category AS T1 LEFT JOIN dtb_product_categories AS T2"; 
    929929        $sql .= " ON T1.category_id = T2.category_id "; 
    930         $sql .= " LEFT JOIN vw_products_allclass AS allcls"; 
    931         $sql .= " ON T2.product_id = allcls.product_id"; 
    932         $sql .= " WHERE allcls.del_flg = 0 AND allcls.status = 1 "; 
     930        $sql .= " LEFT JOIN vw_products_allclass_detail AS alldtl"; 
     931        $sql .= " ON T2.product_id = alldtl.product_id"; 
     932        $sql .= " WHERE alldtl.del_flg = 0 AND alldtl.status = 1 "; 
    933933         
    934934        // 在庫無し商品の非表示 
    935935        if (NOSTOCK_HIDDEN === true) { 
    936             $sql .= ' AND (allcls.stock_max >= 1 OR allcls.stock_unlimited_max = 1)'; 
     936            $sql .= ' AND (alldtl.stock_max >= 1 OR alldtl.stock_unlimited_max = 1)'; 
    937937        } 
    938938         
  • branches/comu-ver2/data/class/pages/admin/products/LC_Page_Admin_Products.php

    r17548 r17549  
    273273                case 'delete_all': 
    274274                    // 検索結果をすべて削除 
    275                     $where = "product_id IN (SELECT product_id FROM vw_products_allclass AS allcls WHERE $where)"; 
     275                    $where = "product_id IN (SELECT product_id FROM vw_products_allclass_detail AS alldtl WHERE $where)"; 
    276276                    $sqlval['del_flg'] = 1; 
    277277                    $objQuery->update("dtb_products", $sqlval, $where, $arrval); 
    278                     $objQuery->delete("dtb_customer_favorite_products", $where); 
     278                    $objQuery->delete("dtb_customer_favorite_products", $where, $arrval); 
    279279                    break; 
    280280                default: 
    281281                    // 読み込む列とテーブルの指定 
    282                     // XXX DISTINCT は応急処置。update_date は DISTINCT のため。 
    283                     $col = "DISTINCT product_id, name, main_list_image, status, product_code_min, product_code_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, update_date"; 
    284                     $from = "vw_products_allclass AS allcls "; 
     282                    $col = "product_id, name, main_list_image, status, product_code_min, product_code_max, price02_min, price02_max, stock_min, stock_max, stock_unlimited_min, stock_unlimited_max, update_date"; 
     283                    $from = "vw_products_allclass_detail AS alldtl "; 
    285284 
    286285                    // 行数の取得 
  • branches/comu-ver2/html/install/sql/create_view.sql

    r17537 r17549  
    11CREATE VIEW vw_cross_class as 
    2      SELECT T1.class_id AS class_id1, 
    3             T2.class_id AS class_id2, 
    4             T1.classcategory_id AS classcategory_id1, 
    5             T2.classcategory_id AS classcategory_id2, 
    6             T1.name AS name1, 
    7             T2.name AS name2, 
    8             T1.rank AS rank1, 
    9             T2.rank AS rank2 
    10        FROM dtb_classcategory AS T1, 
    11             dtb_classcategory AS T2; 
     2    SELECT 
     3        T1.class_id AS class_id1, 
     4        T2.class_id AS class_id2, 
     5        T1.classcategory_id AS classcategory_id1, 
     6        T2.classcategory_id AS classcategory_id2, 
     7        T1.name AS name1, 
     8        T2.name AS name2, 
     9        T1.rank AS rank1, 
     10        T2.rank AS rank2 
     11    FROM 
     12        dtb_classcategory AS T1, 
     13        dtb_classcategory AS T2 
     14; 
    1215 
    1316CREATE VIEW vw_cross_products_class AS 
    14      SELECT T1.class_id1, 
    15             T1.class_id2, 
    16             T1.classcategory_id1, 
    17             T1.classcategory_id2, 
    18             T2.product_id, 
    19             T1.name1, 
    20             T1.name2, 
    21             T2.product_code, 
    22             T2.stock, 
    23             T2.price01, 
    24             T2.price02, 
    25             T1.rank1, 
    26             T1.rank2 
    27        FROM vw_cross_class AS T1 
    28   LEFT JOIN dtb_products_class AS T2 
    29          ON T1.classcategory_id1 = T2.classcategory_id1 
    30         AND T1.classcategory_id2 = T2.classcategory_id2; 
     17    SELECT 
     18        T1.class_id1, 
     19        T1.class_id2, 
     20        T1.classcategory_id1, 
     21        T1.classcategory_id2, 
     22        T2.product_id, 
     23        T1.name1, 
     24        T1.name2, 
     25        T2.product_code, 
     26        T2.stock, 
     27        T2.price01, 
     28        T2.price02, 
     29        T1.rank1, 
     30        T1.rank2 
     31    FROM 
     32        vw_cross_class AS T1 
     33        LEFT JOIN dtb_products_class AS T2 
     34            ON T1.classcategory_id1 = T2.classcategory_id1 
     35            AND T1.classcategory_id2 = T2.classcategory_id2 
     36; 
    3137 
    3238CREATE VIEW vw_products_nonclass AS 
    33      SELECT * 
    34       FROM dtb_products AS T1 LEFT JOIN 
    35       (SELECT 
    36               product_id AS product_id_sub, 
    37               product_code, 
    38               price01, 
    39               price02, 
    40               stock, 
    41               stock_unlimited, 
    42               classcategory_id1, 
    43               classcategory_id2 
    44          FROM dtb_products_class 
    45         WHERE classcategory_id1 = 0 
    46           AND classcategory_id2 = 0) AS T2 
    47         ON T1.product_id = T2.product_id_sub; 
     39    SELECT * 
     40    FROM 
     41        dtb_products AS T1 
     42        LEFT JOIN 
     43        ( 
     44            SELECT 
     45                product_id AS product_id_sub, 
     46                product_code, 
     47                price01, 
     48                price02, 
     49                stock, 
     50                stock_unlimited, 
     51                classcategory_id1, 
     52                classcategory_id2 
     53            FROM dtb_products_class 
     54            WHERE 
     55                classcategory_id1 = 0 
     56                AND classcategory_id2 = 0 
     57        ) AS T2 
     58        ON T1.product_id = T2.product_id_sub 
     59; 
     60 
     61CREATE VIEW vw_products_allclass_detail AS 
     62    SELECT 
     63        dtb_products.product_id, 
     64        dtb_products."name", 
     65        dtb_products.deliv_fee, 
     66        dtb_products.sale_limit, 
     67        dtb_products.sale_unlimited, 
     68        dtb_products.maker_id, 
     69        dtb_products.rank, 
     70        dtb_products.status, 
     71        dtb_products.product_flag, 
     72        dtb_products.point_rate, 
     73        dtb_products.comment1, 
     74        dtb_products.comment2, 
     75        dtb_products.comment3, 
     76        dtb_products.comment4, 
     77        dtb_products.comment5, 
     78        dtb_products.comment6, 
     79        dtb_products.note, 
     80        dtb_products.file1, 
     81        dtb_products.file2, 
     82        dtb_products.file3, 
     83        dtb_products.file4, 
     84        dtb_products.file5, 
     85        dtb_products.file6, 
     86        dtb_products.main_list_comment, 
     87        dtb_products.main_list_image, 
     88        dtb_products.main_comment, 
     89        dtb_products.main_image, 
     90        dtb_products.main_large_image, 
     91        dtb_products.sub_title1, 
     92        dtb_products.sub_comment1, 
     93        dtb_products.sub_image1, 
     94        dtb_products.sub_large_image1, 
     95        dtb_products.sub_title2, 
     96        dtb_products.sub_comment2, 
     97        dtb_products.sub_image2, 
     98        dtb_products.sub_large_image2, 
     99        dtb_products.sub_title3, 
     100        dtb_products.sub_comment3, 
     101        dtb_products.sub_image3, 
     102        dtb_products.sub_large_image3, 
     103        dtb_products.sub_title4, 
     104        dtb_products.sub_comment4, 
     105        dtb_products.sub_image4, 
     106        dtb_products.sub_large_image4, 
     107        dtb_products.sub_title5, 
     108        dtb_products.sub_comment5, 
     109        dtb_products.sub_image5, 
     110        dtb_products.sub_large_image5, 
     111        dtb_products.sub_title6, 
     112        dtb_products.sub_comment6, 
     113        dtb_products.sub_image6, 
     114        dtb_products.sub_large_image6, 
     115        dtb_products.del_flg, 
     116        dtb_products.creator_id, 
     117        dtb_products.create_date, 
     118        dtb_products.update_date, 
     119        dtb_products.deliv_date_id, 
     120        T4.product_code_min, 
     121        T4.product_code_max, 
     122        T4.price01_min, 
     123        T4.price01_max, 
     124        T4.price02_min, 
     125        T4.price02_max, 
     126        T4.stock_min, 
     127        T4.stock_max, 
     128        T4.stock_unlimited_min, 
     129        T4.stock_unlimited_max, 
     130        T4.class_count 
     131    FROM 
     132        dtb_products 
     133        LEFT JOIN 
     134            ( 
     135                SELECT 
     136                    product_id, 
     137                    MIN(product_code) AS product_code_min, 
     138                    MAX(product_code) AS product_code_max, 
     139                    MIN(price01) AS price01_min, 
     140                    MAX(price01) AS price01_max, 
     141                    MIN(price02) AS price02_min, 
     142                    MAX(price02) AS price02_max, 
     143                    MIN(stock) AS stock_min, 
     144                    MAX(stock) AS stock_max, 
     145                    MIN(stock_unlimited) AS stock_unlimited_min, 
     146                    MAX(stock_unlimited) AS stock_unlimited_max, 
     147                    COUNT(*) as class_count 
     148                FROM dtb_products_class 
     149                GROUP BY product_id 
     150            ) AS T4 
     151            ON dtb_products.product_id = T4.product_id 
     152; 
    48153 
    49154CREATE VIEW vw_products_allclass AS 
    50      SELECT T5.product_id, 
    51             product_code_min, 
    52             product_code_max, 
    53             price01_min, 
    54             price01_max, 
    55             price02_min, 
    56             price02_max, 
    57             stock_min, 
    58             stock_max, 
    59             stock_unlimited_min, 
    60             stock_unlimited_max, 
    61             category_rank, 
    62             T5.category_id, 
    63             T5.del_flg, 
    64             T5.status, 
    65             T5.name, 
    66             T5.comment1, 
    67             T5.comment2, 
    68             T5.comment3, 
    69             T5.rank, 
    70             T5.main_list_comment, 
    71             T5.main_image, 
    72             T5.main_list_image, 
    73             T5.product_flag, 
    74             T5.deliv_date_id, 
    75             T5.sale_limit, 
    76             T5.point_rate, 
    77             T5.sale_unlimited, 
    78             T5.create_date, 
    79             T5.deliv_fee, 
    80             T5.update_date 
    81        FROM 
    82              ((SELECT T1.product_id, 
    83                       T1.del_flg, 
    84                       T1.status, 
    85                       T1.name, 
    86                       T1.comment1, 
    87                       T1.comment2, 
    88                       T1.comment3, 
    89                       T1.main_list_comment, 
    90                       T1.main_image, 
    91                       T1.main_list_image, 
    92                       T1.product_flag, 
    93                       T1.deliv_date_id, 
    94                       T1.sale_limit, 
    95                       T1.point_rate, 
    96                       T1.sale_unlimited, 
    97                       T1.create_date, 
    98                       T1.deliv_fee, 
    99                       T2.category_id, 
    100                       T1.rank, 
    101                       T1.update_date 
    102                  FROM dtb_products AS T1 
    103             LEFT JOIN dtb_product_categories AS T2 
    104                    ON T1.product_id = T2.product_id) AS T3 
    105     RIGHT JOIN 
    106           (SELECT product_id AS product_id_sub, 
    107                   MIN(product_code) AS product_code_min, 
    108                   MAX(product_code) AS product_code_max, 
    109                   MIN(price01) AS price01_min, 
    110                   MAX(price01) AS price01_max, 
    111                   MIN(price02) AS price02_min, 
    112                   MAX(price02) AS price02_max, 
    113                   MIN(stock) AS stock_min, 
    114                   MAX(stock) AS stock_max, 
    115                   MIN(stock_unlimited) AS stock_unlimited_min, 
    116                   MAX(stock_unlimited) AS stock_unlimited_max 
    117              FROM dtb_products_class 
    118          GROUP BY product_id) AS T4 
    119                ON T3.product_id = T4.product_id_sub) AS T5 
    120     LEFT JOIN 
    121         (SELECT rank AS category_rank, 
    122                 category_id AS sub_category_id 
    123            FROM dtb_category) AS T6 
    124           ON T5.category_id = T6.sub_category_id; 
    125  
    126 CREATE VIEW vw_products_allclass_detail AS 
    127      SELECT product_id, 
    128             price01_min, 
    129             price01_max, 
    130             price02_min, 
    131             price02_max, 
    132             stock_min, 
    133             stock_max, 
    134             stock_unlimited_min, 
    135             stock_unlimited_max, 
    136             del_flg, 
    137             status, 
    138             name, 
    139             comment1, 
    140             comment2, 
    141             comment3, 
    142             deliv_fee, 
    143             main_comment, 
    144             main_image, 
    145             main_large_image, 
    146             sub_title1, 
    147             sub_comment1, 
    148             sub_image1, 
    149             sub_large_image1, 
    150             sub_title2, 
    151             sub_comment2, 
    152             sub_image2, 
    153             sub_large_image2, 
    154             sub_title3, 
    155             sub_comment3, 
    156             sub_image3, 
    157             sub_large_image3, 
    158             sub_title4, 
    159             sub_comment4, 
    160             sub_image4, 
    161             sub_large_image4, 
    162             sub_title5, 
    163             sub_comment5, 
    164             sub_image5, 
    165             sub_large_image5, 
    166             product_flag, 
    167             deliv_date_id, 
    168             sale_limit, 
    169             point_rate, 
    170             sale_unlimited, 
    171             file1,file2, 
    172             category_id 
    173       FROM (dtb_products AS T1 
    174   RIGHT JOIN 
    175      (SELECT 
    176              product_id AS product_id_sub, 
    177              MIN(price01) AS price01_min, 
    178              MAX(price01) AS price01_max, 
    179              MIN(price02) AS price02_min, 
    180              MAX(price02) AS price02_max, 
    181              MIN(stock) AS stock_min, 
    182              MAX(stock) AS stock_max, 
    183              MIN(stock_unlimited) AS stock_unlimited_min, 
    184              MAX(stock_unlimited) AS stock_unlimited_max 
    185         FROM dtb_products_class 
    186     GROUP BY product_id) AS T2 
    187           ON T1.product_id = T2.product_id_sub) AS T3 
    188   LEFT JOIN (SELECT rank AS category_rank, 
    189                     category_id AS sub_category_id 
    190                FROM dtb_category) AS T4 
    191          ON T3.category_id = T4.sub_category_id; 
     155    SELECT 
     156        alldtl.*, 
     157        dtb_category.rank AS category_rank, 
     158        T2.category_id 
     159    FROM 
     160        vw_products_allclass_detail AS alldtl 
     161        LEFT JOIN 
     162            dtb_product_categories AS T2 
     163            ON alldtl.product_id = T2.product_id 
     164        LEFT JOIN 
     165            dtb_category 
     166            ON T2.category_id = dtb_category.category_id 
     167; 
    192168 
    193169CREATE VIEW vw_product_class AS 
     
    225201  LEFT JOIN dtb_category_total_count AS T2 
    226202         ON T1.category_id = T2.category_id 
    227  
     203; 
  • branches/comu-ver2/html/install/sql/drop_view.sql

    r15079 r17549  
    11DROP VIEW vw_category_count; 
    22DROP VIEW vw_product_class; 
     3DROP VIEW vw_products_allclass; 
    34DROP VIEW vw_products_allclass_detail; 
    4 DROP VIEW vw_products_allclass; 
    55DROP VIEW vw_products_nonclass; 
    66DROP VIEW vw_cross_products_class; 
Note: See TracChangeset for help on using the changeset viewer.