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

サブクエリに存在しない列でクエリが失敗しないのはなぜですか?

    このクエリ:

    select sum(amount)
    from aaa
    where id not in (select id from bbb);
    

    次のように解釈されます:

    select sum(aaa.amount)
    from aaa
    where aaa.id not in (select aaa.id from bbb);
    

    bbb.id 存在しない。 SQLを作成するときは、常にテーブルエイリアスを使用することをお勧めします。あなたが書いていると思ったクエリ:

    select sum(aaa.amount)
    from aaa
    where aaa.id not in (select bbb.id from bbb);
    

    予期したエラーが発生します。



    1. フォームの送信後にMySQL構文エラーが発生する

    2. OracleのROWIDTONCHAR()関数

    3. MySQLで数値の範囲を生成する

    4. リンクサーバーのリモートサーバー名を検索するためのT-SQL