Changeset 20609

Show
Ignore:
Timestamp:
10/03/08 17:44:10 (3 months ago)
Author:
anatoo
Message:

サブクエリ使ってるとこを失くした

Location:
events/phpframework/plain_php/trunk/model/phwittr
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • events/phpframework/plain_php/trunk/model/phwittr/FriendshipService.php

    r20338 r20609  
    1515        $count = $this->fetchFollowerCount($user_id); 
    1616         
    17         $smt = $this->pdo->prepare(' 
     17        /*$smt = $this->pdo->prepare(' 
    1818            select  
    1919                user_followers.*, 
     
    3333             )user_followings  
    3434             on user_followers.id = user_followings.follow_id 
     35            ');*/ 
     36         
     37        $smt = $this->pdo->prepare(' 
     38            select  
     39                *, 
     40                users.id as user_id 
     41            from  
     42                followers left join users  
     43                on followers.user_id = users.id 
     44            where followers.follow_id = :user_id 
     45            limit :offset, :limit 
    3546            '); 
    36          
    3747 
    3848        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
  • events/phpframework/plain_php/trunk/model/phwittr/TimelineService.php

    r20338 r20609  
    1111    function fetchPublicTimeline($offset, $limit) 
    1212    { 
    13         $smt = $this->pdo->prepare( 
    14             'select count(users.id) from statuses left join users on ' . 
    15             'users.id = statuses.user_id where users.private_flag = 0 and ' . 
    16             'users.delete_flag = 0'); 
     13        $smt = $this->pdo->prepare(' 
     14            select count(users.id)  
     15            from statuses left join users on  
     16            users.id = statuses.user_id where users.private_flag = 0 and  
     17            users.delete_flag = 0 
     18        '); 
    1719        $smt->execute(); 
    1820        $count = intval(array_val($smt->fetch(), 'count(users.id)')); 
     
    2022         
    2123 
    22         $smt = $this->pdo->prepare( 
    23             'select users.user_name, users.image, statuses.* from ' . 
    24             'statuses left join users on users.id = statuses.user_id ' . 
    25             'where users.private_flag = 0 and users.delete_flag = 0 ' .  
    26             'order by statuses.created_at desc limit :offset, :limit'); 
     24        $smt = $this->pdo->prepare(' 
     25            select  
     26                users.user_name,  
     27                users.image,  
     28                statuses.* from  
     29            statuses left join users on users.id = statuses.user_id  
     30            where users.private_flag = 0 and users.delete_flag = 0  
     31            order by statuses.created_at desc limit :offset, :limit 
     32        '); 
    2733        $smt->bindValue(':offset', $offset, PDO::PARAM_INT); 
    2834        $smt->bindValue(':limit', $limit, PDO::PARAM_INT); 
     
    3339    { 
    3440        $smt = $this->pdo->prepare(' 
    35             select count(users.id) from statuses left join users on  
    36             users.id = statuses.user_id where users.id = :user_id'); 
     41            select count(users.id)  
     42            from statuses left join users on users.id = statuses.user_id  
     43            where users.id = :user_id 
     44        '); 
    3745        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
    3846        $smt->execute(); 
     
    4048 
    4149        $smt = $this->pdo->prepare(' 
    42             select users.user_name, users.image, statuses.* from statuses  
    43             left join users on users.id = statuses.user_id where users.id = :user_id  
     50            select  
     51                users.user_name,  
     52                users.image,  
     53                statuses.*  
     54            from statuses left join users on users.id = statuses.user_id  
     55            where users.id = :user_id  
    4456            order by statuses.created_at desc  
    4557            limit :offset, :limit'); 
     
    5567    { 
    5668        $smt = $this->pdo->prepare(' 
    57             select statuses.*, users.user_name, users.image from statuses  
    58             left join users on users.id = statuses.user_id where users.id = :user_id  
     69            select statuses.*, users.user_name, users.image  
     70            from statuses left join users on users.id = statuses.user_id  
     71            where users.id = :user_id  
    5972            order by statuses.created_at desc  
    6073            limit 1'); 
     
    6982        $smt = $this->pdo->prepare(' 
    7083            select count(users.id)  
    71                 from statuses left join users on users.id = statuses.user_id  
    72                 where statuses.reply_user_id = :user_id'); 
     84            from statuses left join users on users.id = statuses.user_id  
     85            where statuses.reply_user_id = :user_id 
     86        '); 
    7387        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
    7488        $smt->execute(); 
     
    7892        $smt = $this->pdo->prepare(' 
    7993            select users.user_name, users.image, statuses.*  
    80                 from statuses left join users on users.id = statuses.user_id  
    81                 where statuses.reply_user_id = :user_id  
    82                 order by statuses.created_at desc limit :offset, :limit'); 
     94            from statuses left join users on users.id = statuses.user_id  
     95            where statuses.reply_user_id = :user_id  
     96            order by statuses.created_at desc limit :offset, :limit 
     97        '); 
    8398        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
    8499        $smt->bindValue(':offset', $offset, PDO::PARAM_INT); 
     
    91106        $smt = $this->pdo->prepare(' 
    92107            select count(users.id)  
    93                 from statuses left join users on users.id = statuses.user_id 
    94                               left join (select * from followers where user_id = :user_id) f1 on f1.follow_id = users.id 
     108            from statuses  
     109                left join users on users.id = statuses.user_id 
     110                left join followers on followers.follow_id = statuses.user_id and followers.user_id = :user_id 
    95111                           
    96                 where users.delete_flag = 0 and f1.user_id = :user_id 
    97                       or users.id = :user_id '); 
     112            where users.delete_flag = 0 and followers.user_id = :user_id  
     113                or users.id = :user_id  
     114        '); 
    98115         
    99116        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     
    104121        $smt = $this->pdo->prepare(' 
    105122            select users.user_name, users.image, statuses.*  
    106                 from statuses left join users on users.id = statuses.user_id 
    107                               left join (select * from followers where user_id = :user_id) f1 on f1.follow_id = users.id 
     123            from statuses  
     124                left join users on users.id = statuses.user_id 
     125                left join followers on followers.follow_id = statuses.user_id and followers.user_id = :user_id 
    108126                           
    109                 where users.delete_flag = 0 and f1.user_id = :user_id 
    110                       or users.id = :user_id  
     127            where users.delete_flag = 0 and followers.user_id = :user_id  
     128                or statuses.user_id = :user_id  
    111129                        
    112                 order by statuses.created_at desc  
    113                 limit :offset, :limit'); 
     130            order by statuses.created_at desc  
     131            limit :offset, :limit 
     132        '); 
    114133         
    115134        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT);