Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle:Lewy połącz bardzo dużą tabelę i ogranicz połączone wiersze do jednego z największą wartością pola

spróbuj tego

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

lub możesz spróbować tego (to Twój kod, ale niektóre modyfikacje)

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP, IIS, Oracle (OCI) nie działają

  2. Jak zamienić wartości sqlldr

  3. Jak przyspieszyć ładowanie danych z Oracle sql do pandas df

  4. Spring Boot - Połącz się ponownie z bazą danych po jej ponownym uruchomieniu

  5. Jak usunąć „Wybrano X wierszy” w SQLcl i SQL*Plus (Oracle)