複雑なmysqlをわかりやすくまとめる

  • 0
    いいね
  • 0
    コメント

    mysql をやっていると結構複雑なクエリを使う時がある。
    忘れちゃうので、どんどんメモしときます。。

    cakephp3 で使う場合

    直接SQLを使うので、
    use Cake\Datasource\ConnectionManager;
    をやっとく。

    クエリによって
    ->fetchAll('assoc');
    がついたりつかなかったりするので注意。

    twusers を a テーブル、 omois を b テーブルとして仮名をつける。
    そして、aテーブルの id と b テーブルの twuser_id を結びつける。

    テーブルを連結させ、それぞれの条件で COUNT

    a テーブルの \'-error-user-\' であり、
    b テーブルの omoi = 0 、
    b テーブルの social_id が 99 のものをカウントする。

    
    //use Cake\Datasource\ConnectionManager;
    $social_id = 99;
    $connection = ConnectionManager::get('default');
    $sql = 'SELECT COUNT(a.id) FROM twusers a INNER JOIN omois b ON a.id = b.twuser_id WHERE a.name != \'-error-user-\' AND  b.omoi = 0 AND b.social_id ='.$social_id.';';
    $res = $connection->execute($sql)->fetchAll('assoc');
    
    
    

    テーブルを空に

    twusers と omois テーブルを空にします。

    
    $connection = ConnectionManager::get('default');
    $results = $connection->execute('TRUNCATE TABLE twusers');
    $results = $connection->execute('TRUNCATE TABLE omois');