sql >> データベース >  >> RDS >> Mysql

Codeigniter、Join、Case When Query

    エイリアスを使用して簡略化する

    $sql ="SELECT [specific column names ] FROM `osp_job_details` jd
        LEFT JOIN
                `osp_job_status_track` jst ON (`jst`.`JobID` = `jd`.`JobID`)
        LEFT JOIN
                `osp_job_status` js ON (`js`.`StatusID` = `jst`.`StatusID`)
        LEFT JOIN
                `osp_job_sub_status` jss ON (`jss`.`SubStatusID` = `jst`.`SubStatusID`)
        LEFT JOIN
                `hr_employee_details` hed ON (`hed`.`EmployeeID` = `jd`.`AssignToEmployeeID`)
        LEFT JOIN
                `osp_job_type` jt ON (`jt`.`JobTypeID` = `jd`.`JobtypeID`)
    
        WHERE `isDefault` = '0' 
         AND CASE 
                    WHEN `js`.`StatusID` = '2' THEN  `jss`.`CurrentStatus` = '3'
                    ELSE `jd`.`StatusID` >= '2'
                END ";
      $this->db->query($qry);
    

    注: 列名とテーブル名を`でラップします 'ではありません また、テーブル名を参照する場合。列名 ドット.を除外します \から

    `tablenameを使用します `。`column_name `



    1. 行内のすべての列を日付からタイムスタンプMySQLに変換します

    2. AMD、Intel、およびPostgreSQL

    3. MySQLビュー定義者の権限とエラー1356

    4. 名前にスペースが含まれるmysqlでデータベースを選択する