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

部分選択が壊れているクエリではエラーが発生するはずですが、行が返されます

    その理由は、エイリアス化されていない列がサブクエリに存在せず、外部クエリに存在する場合、Oracleは外部クエリから列を参照していると見なすためです。

    エイリアスを使用すると、混乱しているクエリは次のようになります。

    select *
    from   test_values tv
    where  tv.tst_id in (select tv.tst_id2
                         from   test_lookup tl
                         where  tl.tst_value = 'findMe');
    

    うまくいけば、それは物事をより明確にしますか?

    表示されている問題は、列に元のテーブルのラベルを常に付ける必要がある理由の非常に良い例です。これにより、開始時のクエリの保守がはるかに簡単になります。



    1. 孤立した行を削除するエレガントな方法は?

    2. 結合ステートメントmysqlで更新しますか?

    3. Pythonを使用してWindows認証でMSSQLServerに接続しますか?

    4. mysqlテーブルの最後の列を追加する方法