SQL Łączenie według pola, które * może * być puste
W mojej bazie danych SQL CE mam trzy tabele:customer
, list
icustomerlist
(tabela połączeń międzycustomer
ilist
- ponieważ jest to relacja wiele do wielu).
Próbuję uruchomić zapytanie, które wyświetli wszystkie aktualne listy, a także liczbę klientów, którzy aktualnie subskrybują tę listę (licząc odcustomerlist
stół).
Oto moje aktualne zapytanie:
select list.listid, count(customerlist.customerid) as numppl, list.ShortDesc
from list inner join customerlist on list.listid=customerlist.listid
group by list.ShortDesc, list.listid
order by numppl desc
Obecna struktura tej bazy danych:
[Customer] [List] [CustomerList]
CustomerId ListId CustomerListId
Name ShortDesc CustomerId
Other details ListId
To obecnie zwraca wszystkie listy, które mają aktualnie przypisanych klientów - ale nie listy, które są puste. Puste listy są ukryte.
Chciałbym zmodyfikować to zapytanie, aby wyświetlić także puste listy, ale walczę. Moje pożądane wyjście to:
Name numppl
listA 375
listB 45
listC 0
(W powyższym przykładzie listC nie jest obecnie zwracany).
Jakieś przemyślenia, jak również wyświetlić listęC w zapytaniu?