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

Mysql CASEWHENJOINステートメントエラー

    私はあなたが意図していると思います:

    SELECT *
    FROM `pet_info` LEFT JOIN
         `lostpets`
         ON `pet_info`.`id` = `lostpets`.`petid` LEFT JOIN
         `pet_images`
         ON `pet_info`.`id` = `pet_images`.`petid` LEFT JOIN
         `cat_breeds`
         ON `cat_breeds`.`id` = `pet_info`.`pet_breed` AND
            `pet_info`.`pet_cat` = 2 LEFT JOIN
         `dog_breeds`
         ON `dog_breeds`.`id` = `pet_info`.`pet_breed` AND
            `pet_info`.`pet_cat` = 1
    WHERE `pet_info`.`pet_user_id` = 581;
    

    注:

    • このようなクエリでは、SELECT *を使用しないでください 、必要な列を明示的に選択する必要があります。異なるテーブルには同じ名前の列があります。
    • 列エイリアスを使用する必要があります。これらはクエリに含めませんでしたが、良いアイデアです。
    • 実際のクエリでは、SELECTに式があります cat_breedsの列を組み合わせる およびdog_breedsCOALESCE(cat_breeds.col1, dog_breeds.col1) as col1など 。



    1. Oracleから各グループの最新の行を選択します

    2. HTML-ページを更新/再読み込みせずにページの内容を変更\更新

    3. mysqli拡張機能を使用してPHPでMySQLデータベースに接続する方法は?

    4. Oracleのデフォルトの日付形式はYYYY-MM-DDですが、なぜですか?