sql двойной счет в операторе соединения
У меня есть эти два оператора SQL, и мне нужно объединить их в один оператор, но когда я это делаю, результат неуместен. : /
select
nieruchomosci.nieruchomoscnr, count(wynajecia.nieruchomoscNr) as wynajecia
from
nieruchomosci, wynajecia
where
nieruchomosci.nieruchomoscnr = wynajecia.nieruchomoscNr
GROUP BY
nieruchomosci.nieruchomoscnr;
select
nieruchomosci.nieruchomoscnr, count(wizyty.nieruchomoscnr) as wizyty
from
nieruchomosci, wizyty
where
wizyty.nieruchomoscnr = nieruchomosci.nieruchomoscnr
GROUP BY
nieruchomosci.nieruchomoscnr;
Вот как я присоединился к ним:
select
nieruchomosci.nieruchomoscnr,
count(wynajecia.nieruchomoscNr) as wynajecia,
count(wizyty.nieruchomoscnr) as wizyty
from
nieruchomosci, wynajecia, wizyty
where
nieruchomosci.nieruchomoscnr = wynajecia.nieruchomoscNr
and wizyty.nieruchomoscnr = nieruchomosci.nieruchomoscNr
GROUP BY
nieruchomosci.nieruchomoscnr;
При этом числа в «wynajecia» и «wizyty» совпадают, что неверно. : /
РЕДАКТИРОВАТЬ:
С этим кодом я получаю:
A14 8 8
B16 6 6
B17 4 4
B18 4 4
B21 4 4
G01 6 6
L94 10 10
Правильный вывод должен быть таким:
A14 2 4
B16 3 2
B17 2 2
B18 2 2
B21 2 2
G01 3 2
L94 2 5
Мне удалось получить точную по этому коду:
select nieruchomosci.nieruchomoscnr,
(select count(wynajecia.nieruchomoscNr) from wynajecia where wynajecia.nieruchomoscNr = nieruchomosci.nieruchomoscnr) as wynajecia,
(select count(wizyty.nieruchomoscNr) from wizyty where wizyty.nieruchomoscNr = nieruchomosci.nieruchomoscnr) as wizyty
from nieruchomosci
Но я не думаю, что это правильный способ решения проблемы.