У меня есть 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
Но я не могу найти клиентов, которые не указали название страны или штата. Я не знаю, как написать полный запрос внешнего соединения.
Вам нужно использовать левое соединение. Если клиент является вашей основной таблицей, начните запрос с нее.
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