sqlite-запрос для получения экземпляров, если элементы не возвращались при объединении - PullRequest
0 голосов
/ 02 мая 2020

Я запрашиваю состояние базы данных c для игры, в которую я играю (пытаясь следить за своим кодированием), и у меня возникает проблема с получением полных результатов, которые я хочу.

Так что запрос, который у меня до сих пор:

select ms.security, mc.constellationName, mr.regionName, ms.solarSystemName, count(it.typename) as NumberOfBelts
from mapSolarSystems as ms
    join mapConstellations as mc on ms.constellationID == mc.constellationID
    join mapRegions as mr on ms.regionID == mr.regionID
    join invItems as ii on ii.locationID = ms.solarSystemID
    join invTypes as it on it.typeID == ii.typeID
where it.groupID = 9
group by  solarSystemName

проблема возникает, когда нет строк, где it.groupID == 9. Мне нужно, чтобы счетчик возвращал 0, а я не могу для жизнь меня понять, как заставить это работать.

Я пытался выполнить левое внешнее соединение в последнем операторе соединения, но без радости.

1 Ответ

0 голосов
/ 02 мая 2020

Измените последнее соединение на left соединение и задайте условие в предложении on предложения where:

select ms.security, mc.constellationName, mr.regionName, ms.solarSystemName, count(it.typename) as NumberOfBelts
from mapSolarSystems as ms
    join mapConstellations as mc on ms.constellationID = mc.constellationID
    join mapRegions as mr on ms.regionID = mr.regionID
    join invItems as ii on ii.locationID = ms.solarSystemID
    left join invTypes as it on it.typeID = ii.typeID and it.groupID = 9
group by  solarSystemName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...