Выберите данные из трех таблиц, включая null

У меня есть 3 таблицы:

1. tbl_Country(CountryID,CountryName)
2. tbl_Customer(CustumerID,Name,CountryID,StateID)
3. tbl_State(StateID,StateName,CountryID)

Я пытаюсь присоединиться к этим таблицам, используя следующий запрос:

select cu.CustID,
       cu.CountryID,
       cu.StateID,
       cu.Name,
       c.CountryName,
       s.StateName 
from tbl_Customer cu, 
     tbl_Country c,
     tbl_State s 
where c.CountryID = cu.CountryID and 
       s.StateID = cu.StateID and 
       c.CountryID = s.CountryID

Но я не могу найти клиентов, которые не указали название страны или штата. Я не знаю, как написать полный запрос внешнего соединения.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
65
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам нужно использовать левое соединение. Если клиент является вашей основной таблицей, начните запрос с нее.

SELECT cu.CustID, 
       cu.CountryID, 
       cu.StateID, 
       cu.Name, 
       c.CountryName, 
       s.StateName 
FROM   tbl_Customer cu 
       LEFT JOIN tbl_Country c 
              ON cu.CountryId = c.CountryId 
       LEFT JOIN tbl_State s 
              ON s.StateID = cu.StateID 
                 AND c.CountryID = s.CountryID 

использовать явное соединение

  select cu.CustID,
           cu.CountryID,
           cu.StateID,
           cu.Name,
           c.CountryName,
           s.StateName  
    from tbl_Customer cu left join
         tbl_Country c on   c.CountryID = cu.CountryID
         left join tbl_State s   s.StateID = cu.StateID
         and c.CountryID = s.CountryID

Другие вопросы по теме