sql >> Databasteknik >  >> RDS >> Oracle

Oracle:Vänster sammanfoga mycket stor tabell och begränsa de sammanfogade raderna till en med det största fältvärdet

prova detta

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

eller så kan du prova detta (det är din kod men några ändringar)

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 dubblettnyckelfel orsakar ett delat lås satt på dubblettindexposten?

  2. Rails väljer slumpmässigt rekord

  3. ScyllaDB-trender – hur användare distribuerar realtidsdatabasen för stordata

  4. Finns det en genväg för bindning med namnet PDO-parametrar för MySQL-inlägg?