加入3个SQL表

Sha*_*han 0 mysql sql

我有3个表看起来像这样:

Table1:
PersonSSN
NumberOfCars

Table2:
PersonSSN
NumberOfPhones

Table3:
PersonName
PersonSSN
Run Code Online (Sandbox Code Playgroud)

表1和表2都有对PersonSSN上的表3的外键引用.

我需要以这样的方式加入这些:PersonName NumberOfPhones NumberOfCars

以下是适用于联接的一些条件:

  1. 如果一个人在Table1和Table2中都有一个条目,我会看到为他填充的所有3个字段.
  2. 如果一个人在Table1中有一个条目而在Table2中没有,他仍然应该出现,但NumberOfPhones设置为0.
  3. 同样,如果一个人在Table2中有一个条目而在Table1中没有,他仍然应该出现,但NumberOfCars设置为0.

这可以在一个查询中实现吗?如果是,查询应该是什么?

Gor*_*off 6

这是一个left outer join查询:

select t3.name, coalesce(t1.NumberOfPhones, 0), coalesce(t2.NumberOfCars, 0)
from table3 t3 left outer join
     table1 t1
     on t3.ssn = t1.ssn left outer join
     table2 t2
     on t3.ssn = t2.ssn;
Run Code Online (Sandbox Code Playgroud)