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

Oracle:非常に大きなテーブルを左結合し、結合された行を最大のフィールド値を持つ行に制限します

    これを試してください

    SELECT m.*,
           (select s.s_field 
              from t_sub s
             where s.m_id = m.m_id
               and s.s_order = (select max(s_order) from t_sub where t_sub.m_id = s.m_id)
               and rownum = 1)
    FROM t_main m
    

    または、これを試すことができます(これはコードですが、いくつかの変更があります)

    SELECT m.*,
          (select s.s_field from 
           (SELECT s_field, m_id
              FROM t_sub
             --where t_sub.m_id = m.m_id
             order by s_order DESC) s
            where s.m_id = m.m_id
              and rownum = 1)
    FROM t_main m
    


    1. MySQLクエリが有効かどうかを判断する方法は?

    2. MariaDB JSON_LOOSE()の説明

    3. テーブルを作成するためのクエリを作成します

    4. n個のグループ化されたカテゴリを取得し、他のカテゴリを1つに合計します