Ignore:
Timestamp:
2009/10/19 22:50:03 (15 years ago)
Author:
Seasoft
Message:

可読性の向上。

File:
1 edited

Legend:

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

    r18275 r18341  
    252252     */ 
    253253    function viewToSubQuery() { 
    254         $sql['vw_products_allclass_detail'] =<<< __EOS__ 
    255             ( 
    256                 SELECT 
    257                     dtb_products.product_id, 
    258                     dtb_products.name, 
    259                     dtb_products.deliv_fee, 
    260                     dtb_products.sale_limit, 
    261                     dtb_products.maker_id, 
    262                     dtb_products.rank, 
    263                     dtb_products.status, 
    264                     dtb_products.product_flag, 
    265                     dtb_products.point_rate, 
    266                     dtb_products.comment1, 
    267                     dtb_products.comment2, 
    268                     dtb_products.comment3, 
    269                     dtb_products.comment4, 
    270                     dtb_products.comment5, 
    271                     dtb_products.comment6, 
    272                     dtb_products.note, 
    273                     dtb_products.file1, 
    274                     dtb_products.file2, 
    275                     dtb_products.file3, 
    276                     dtb_products.file4, 
    277                     dtb_products.file5, 
    278                     dtb_products.file6, 
    279                     dtb_products.main_list_comment, 
    280                     dtb_products.main_list_image, 
    281                     dtb_products.main_comment, 
    282                     dtb_products.main_image, 
    283                     dtb_products.main_large_image, 
    284                     dtb_products.sub_title1, 
    285                     dtb_products.sub_comment1, 
    286                     dtb_products.sub_image1, 
    287                     dtb_products.sub_large_image1, 
    288                     dtb_products.sub_title2, 
    289                     dtb_products.sub_comment2, 
    290                     dtb_products.sub_image2, 
    291                     dtb_products.sub_large_image2, 
    292                     dtb_products.sub_title3, 
    293                     dtb_products.sub_comment3, 
    294                     dtb_products.sub_image3, 
    295                     dtb_products.sub_large_image3, 
    296                     dtb_products.sub_title4, 
    297                     dtb_products.sub_comment4, 
    298                     dtb_products.sub_image4, 
    299                     dtb_products.sub_large_image4, 
    300                     dtb_products.sub_title5, 
    301                     dtb_products.sub_comment5, 
    302                     dtb_products.sub_image5, 
    303                     dtb_products.sub_large_image5, 
    304                     dtb_products.sub_title6, 
    305                     dtb_products.sub_comment6, 
    306                     dtb_products.sub_image6, 
    307                     dtb_products.sub_large_image6, 
    308                     dtb_products.del_flg, 
    309                     dtb_products.creator_id, 
    310                     dtb_products.create_date, 
    311                     dtb_products.update_date, 
    312                     dtb_products.deliv_date_id, 
    313                     T4.product_code_min, 
    314                     T4.product_code_max, 
    315                     T4.price01_min, 
    316                     T4.price01_max, 
    317                     T4.price02_min, 
    318                     T4.price02_max, 
    319                     T4.stock_min, 
    320                     T4.stock_max, 
    321                     T4.stock_unlimited_min, 
    322                     T4.stock_unlimited_max, 
    323                     T4.class_count 
    324                 FROM 
    325                     dtb_products 
    326                     LEFT JOIN 
    327                         ( 
    328                             SELECT 
    329                                 product_id, 
    330                                 MIN(product_code) AS product_code_min, 
    331                                 MAX(product_code) AS product_code_max, 
    332                                 MIN(price01) AS price01_min, 
    333                                 MAX(price01) AS price01_max, 
    334                                 MIN(price02) AS price02_min, 
    335                                 MAX(price02) AS price02_max, 
    336                                 MIN(stock) AS stock_min, 
    337                                 MAX(stock) AS stock_max, 
    338                                 MIN(stock_unlimited) AS stock_unlimited_min, 
    339                                 MAX(stock_unlimited) AS stock_unlimited_max, 
    340                                 COUNT(*) as class_count 
    341                             FROM dtb_products_class 
    342                             GROUP BY product_id 
    343                         ) AS T4 
    344                         ON dtb_products.product_id = T4.product_id 
    345             ) 
    346 __EOS__; 
    347  
    348         return array( 
    349             "vw_cross_class" => ' 
    350                 (SELECT T1.class_id AS class_id1, T2.class_id AS class_id2, T1.classcategory_id AS classcategory_id1, T2.classcategory_id AS classcategory_id2, T1.name AS name1, T2.name AS name2, T1.rank AS rank1, T2.rank AS rank2 
    351                 FROM dtb_classcategory AS T1, dtb_classcategory AS T2 ) ', 
    352  
    353             "vw_cross_products_class" =>' 
    354                 (SELECT T1.class_id1, T1.class_id2, T1.classcategory_id1, T1.classcategory_id2, T2.product_id, 
    355                 T1.name1, T1.name2, T2.product_code, T2.stock, T2.price01, T2.price02, T1.rank1, T1.rank2 
    356                 FROM (SELECT T1.class_id AS class_id1, T2.class_id AS class_id2, T1.classcategory_id AS classcategory_id1, T2.classcategory_id AS classcategory_id2, T1.name AS name1, T2.name AS name2, T1.rank AS rank1, T2.rank AS rank2 
    357                 FROM dtb_classcategory AS T1, dtb_classcategory AS T2 ) AS T1 LEFT JOIN dtb_products_class AS T2 
    358                 ON T1.classcategory_id1 = T2.classcategory_id1 AND T1.classcategory_id2 = T2.classcategory_id2) ', 
    359  
    360             "vw_products_nonclass" => ' 
     254 
     255        static $sql = array(); 
     256 
     257        if (empty($sql)) { 
     258 
     259            $sql['vw_cross_class'] = <<< __EOS__ 
     260                ( 
     261                    SELECT 
     262                        T1.class_id AS class_id1, 
     263                        T2.class_id AS class_id2, 
     264                        T1.classcategory_id AS classcategory_id1, 
     265                        T2.classcategory_id AS classcategory_id2, 
     266                        T1.name AS name1, 
     267                        T2.name AS name2, 
     268                        T1.rank AS rank1, 
     269                        T2.rank AS rank2 
     270                    FROM 
     271                        dtb_classcategory AS T1, 
     272                        dtb_classcategory AS T2 
     273                ) 
     274__EOS__; 
     275 
     276            $sql['vw_cross_products_class'] = <<< __EOS__ 
     277                ( 
     278                    SELECT 
     279                        T1.class_id1, 
     280                        T1.class_id2, 
     281                        T1.classcategory_id1, 
     282                        T1.classcategory_id2, 
     283                        T2.product_id, 
     284                        T1.name1, 
     285                        T1.name2, 
     286                        T2.product_code, 
     287                        T2.stock, 
     288                        T2.price01, 
     289                        T2.price02, 
     290                        T1.rank1, 
     291                        T1.rank2 
     292                    FROM 
     293                        {$sql['vw_cross_class']} AS T1 
     294                        LEFT JOIN dtb_products_class AS T2 
     295                            ON T1.classcategory_id1 = T2.classcategory_id1 
     296                            AND T1.classcategory_id2 = T2.classcategory_id2 
     297                ) 
     298__EOS__; 
     299 
     300            $sql['vw_products_nonclass'] = <<< __EOS__ 
    361301                ( 
    362302                    SELECT * 
     
    381321                        ON T1.product_id = T2.product_id_sub 
    382322                ) 
    383             ', 
    384  
    385             "vw_products_allclass" => " 
    386             ( 
    387                 SELECT 
    388                     alldtl.*, 
    389                     dtb_category.rank AS category_rank, 
    390                     T2.category_id, 
    391                     T2.rank AS product_rank 
    392                 FROM 
    393                     {$sql['vw_products_allclass_detail']} AS alldtl 
    394                     LEFT JOIN 
    395                         dtb_product_categories AS T2 
    396                         ON alldtl.product_id = T2.product_id 
    397                     LEFT JOIN 
    398                         dtb_category 
    399                         ON T2.category_id = dtb_category.category_id 
    400             ) ", 
    401  
    402             "vw_products_allclass_detail" => $sql['vw_products_allclass_detail'], 
    403  
    404             "vw_product_class" => ' 
     323__EOS__; 
     324 
     325            $sql['vw_products_allclass_detail'] = <<< __EOS__ 
     326                ( 
     327                    SELECT 
     328                        dtb_products.product_id, 
     329                        dtb_products.name, 
     330                        dtb_products.deliv_fee, 
     331                        dtb_products.sale_limit, 
     332                        dtb_products.maker_id, 
     333                        dtb_products.rank, 
     334                        dtb_products.status, 
     335                        dtb_products.product_flag, 
     336                        dtb_products.point_rate, 
     337                        dtb_products.comment1, 
     338                        dtb_products.comment2, 
     339                        dtb_products.comment3, 
     340                        dtb_products.comment4, 
     341                        dtb_products.comment5, 
     342                        dtb_products.comment6, 
     343                        dtb_products.note, 
     344                        dtb_products.file1, 
     345                        dtb_products.file2, 
     346                        dtb_products.file3, 
     347                        dtb_products.file4, 
     348                        dtb_products.file5, 
     349                        dtb_products.file6, 
     350                        dtb_products.main_list_comment, 
     351                        dtb_products.main_list_image, 
     352                        dtb_products.main_comment, 
     353                        dtb_products.main_image, 
     354                        dtb_products.main_large_image, 
     355                        dtb_products.sub_title1, 
     356                        dtb_products.sub_comment1, 
     357                        dtb_products.sub_image1, 
     358                        dtb_products.sub_large_image1, 
     359                        dtb_products.sub_title2, 
     360                        dtb_products.sub_comment2, 
     361                        dtb_products.sub_image2, 
     362                        dtb_products.sub_large_image2, 
     363                        dtb_products.sub_title3, 
     364                        dtb_products.sub_comment3, 
     365                        dtb_products.sub_image3, 
     366                        dtb_products.sub_large_image3, 
     367                        dtb_products.sub_title4, 
     368                        dtb_products.sub_comment4, 
     369                        dtb_products.sub_image4, 
     370                        dtb_products.sub_large_image4, 
     371                        dtb_products.sub_title5, 
     372                        dtb_products.sub_comment5, 
     373                        dtb_products.sub_image5, 
     374                        dtb_products.sub_large_image5, 
     375                        dtb_products.sub_title6, 
     376                        dtb_products.sub_comment6, 
     377                        dtb_products.sub_image6, 
     378                        dtb_products.sub_large_image6, 
     379                        dtb_products.del_flg, 
     380                        dtb_products.creator_id, 
     381                        dtb_products.create_date, 
     382                        dtb_products.update_date, 
     383                        dtb_products.deliv_date_id, 
     384                        T4.product_code_min, 
     385                        T4.product_code_max, 
     386                        T4.price01_min, 
     387                        T4.price01_max, 
     388                        T4.price02_min, 
     389                        T4.price02_max, 
     390                        T4.stock_min, 
     391                        T4.stock_max, 
     392                        T4.stock_unlimited_min, 
     393                        T4.stock_unlimited_max, 
     394                        T4.class_count 
     395                    FROM 
     396                        dtb_products 
     397                        LEFT JOIN 
     398                            ( 
     399                                SELECT 
     400                                    product_id, 
     401                                    MIN(product_code) AS product_code_min, 
     402                                    MAX(product_code) AS product_code_max, 
     403                                    MIN(price01) AS price01_min, 
     404                                    MAX(price01) AS price01_max, 
     405                                    MIN(price02) AS price02_min, 
     406                                    MAX(price02) AS price02_max, 
     407                                    MIN(stock) AS stock_min, 
     408                                    MAX(stock) AS stock_max, 
     409                                    MIN(stock_unlimited) AS stock_unlimited_min, 
     410                                    MAX(stock_unlimited) AS stock_unlimited_max, 
     411                                    COUNT(*) as class_count 
     412                                FROM dtb_products_class 
     413                                GROUP BY product_id 
     414                            ) AS T4 
     415                            ON dtb_products.product_id = T4.product_id 
     416                ) 
     417__EOS__; 
     418 
     419            $sql['vw_products_allclass'] = <<< __EOS__ 
     420                ( 
     421                    SELECT 
     422                        alldtl.*, 
     423                        dtb_category.rank AS category_rank, 
     424                        T2.category_id, 
     425                        T2.rank AS product_rank 
     426                    FROM 
     427                        {$sql['vw_products_allclass_detail']} AS alldtl 
     428                        LEFT JOIN 
     429                            dtb_product_categories AS T2 
     430                            ON alldtl.product_id = T2.product_id 
     431                        LEFT JOIN 
     432                            dtb_category 
     433                            ON T2.category_id = dtb_category.category_id 
     434                ) 
     435__EOS__; 
     436 
     437            $sql['vw_product_class'] = <<< __EOS__ 
    405438                (SELECT * FROM 
    406439                (SELECT T3.product_class_id, T3.product_id AS product_id_sub, classcategory_id1, classcategory_id2, 
     
    423456                AS T3 LEFT JOIN dtb_classcategory AS T4 
    424457                ON T3.classcategory_id2 = T4.classcategory_id) AS T5 LEFT JOIN dtb_products AS T6 
    425                 ON product_id_sub = T6.product_id) ', 
    426  
    427             "vw_category_count" => ' 
     458                ON product_id_sub = T6.product_id) 
     459__EOS__; 
     460 
     461            $sql['vw_category_count'] = <<< __EOS__ 
    428462                (SELECT T1.category_id, T1.category_name, T1.parent_category_id, T1.level, T1.rank, T2.product_count 
    429463                FROM dtb_category AS T1 LEFT JOIN dtb_category_total_count AS T2 
    430                 ON T1.category_id = T2.category_id) ' 
    431         ); 
     464                ON T1.category_id = T2.category_id) 
     465__EOS__; 
     466        } 
     467 
     468        return $sql; 
     469 
    432470    } 
    433471} 
Note: See TracChangeset for help on using the changeset viewer.