sql >> Database >  >> RDS >> Mysql

(My)SQL volledige join met drie tabellen

Voor zover ik weet is er geen volledige outer join in MySql. Dus, om te doen wat je nodig hebt, moet je verschillende ID's krijgen in afgeleide tabellen en links samenvoegen met originele tabellen:

select ids.id,
       ifnull(table1.A, 0) A,
       ifnull(table2.B, 0) B,
       ifnull(table3.C, 0) C,
       ifnull(table1.A, 0) + ifnull(table2.B, 0) - ifnull(table3.C, 0) R
  from 
  (
    select id
      from table1
    union
    select id
      from table2
    union
    select id
      from table3
  ) ids
  left join table1
    on ids.id = table1.id
  left join table2
    on ids.id = table2.id
  left join table3
    on ids.id = table3.id


  1. MySQL localhost / 127.0.0.1 probleem

  2. Een MySQL- of MariaDB-server voorbereiden voor productie - deel twee

  3. SQL Server SHOWPLAN_TEXT

  4. Hoe wordt de JDBC-querytime-out van Oracle geïmplementeerd?