Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SELECT QUERY за връзка едно към много между две таблици

Един метод използва условно агрегиране:

select t1.PERSON_ID, t1.FIRST_NAME, t1.MIDDLE_NAME, t1.LAST_NAME, 
       max(case when t2.phone_type = 'BUSINESS' then t2.PHONE_NUMBER end) as business,
       max(case when t2.phone_type = 'PERSONAL' then t2.PHONE_NUMBER end) as personal,
       max(case when t2.phone_type = 'HOME' then t2.PHONE_NUMBER end) as home
from Table1 t1 inner join
     Table2 t2
     on t2.PERSON_ID = t1.PERSON_ID
where t2.PHONE_TYPE in ('BUSINESS', 'PERSONAL', 'HOME') 
group by t1.PERSON_ID, t1.FIRST_NAME, t1.MIDDLE_NAME, t1.LAST_NAME;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Премахнете дубликатите с помощта на функцията Oracle LISTAGG

  2. Защо to_timestamp_tz на Oracle връща грешен час и/или часова зона?

  3. Най-бързият начин за идентифициране на разликите между две таблици?

  4. ORA-00918:колона двусмислено дефинирана в SELECT *

  5. WSJDBCConnection не обвива обекти от тип Oracle jdbc Connection