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

OracleSQLクエリで繰り返される行を削除する方法

    このクエリは、次のような結合構文で書き直すことができます:

    SELECT DISTINCT t.table_id
    FROM   TABLE_ONE t
           JOIN COMMON_TABLE cmn
             ON t.table_id = cmn.common_id
    WHERE  t.table_name IN( 'TEST_ONE', 'TEST_TWO', 'TEST_THREE' )
           AND cmn.column_one > 20
           AND cmn.column_two <= 30 
    

    DISTINCT 重複するレコードを削除します。

    編集:

    次のように子テーブルを含めることができます:

    SELECT DISTINCT t.table_id
    FROM   TABLE_ONE t
           JOIN COMMON_TABLE cmn
             ON t.table_id = cmn.common_id
           JOIN TABLE_CHILD_ONE tc
             ON t.table_id = tc.table_id
    WHERE  ( tc.table_name IN( 'TEST_CHILD_ONE', 'TEST_CHILD_TWO', 'TEST_CHILD_THREE' )
              OR t.table_name IN( 'TEST_ONE', 'TEST_TWO', 'TEST_THREE' ) )
           AND cmn.column_one > 20
           AND cmn.column_two <= 30 
    


    1. MySQLPDOクエリのbindParamでLIKEを使用する

    2. カンマ区切りの値を個々の行に分割します

    3. mysqlでGROUPBYレコードをさらにフィルタリングするにはどうすればよいですか?

    4. COUNT式の述語のカーディナリティ推定