Я пытаюсь выполнить левое соединение, чтобы получить все строки из таблицы 1, даже если во второй таблице нет соответствующих им значений.
Мои структуры:
Таблица местоположений:
ID LocName
1 Trk1
2 Trk2
3 Trk3
4 Unk
Таблица чисел:
ID PartID Quantity LocationID
1 1 2 1
2 3 12 2
3 2 6 1
4 6 8 3
5 6 5 1
Я пытаюсь присоединиться, но также делаю запрос по указанному c PartID. Мой запрос:
SELECT
INV_LOCATIONS.ID AS LocationID,
INV_LOCATIONS.NAME AS LocationName,
INV_QUANTITY.QUANTITY AS Quantity
FROM INV_LOCATIONS
LEFT JOIN INV_QUANTITY ON INV_LOCATIONS.ID = INV_QUANTITY.LOCATION_ID
WHERE INV_QUANTITY.PART_ID = 1;
Мой вывод сейчас будет:
ID LocName Quantity
1 Trk1 5
3 Trk3 8
Желаемый вывод:
ID LocName Quantity
1 Trk1 5
2 Trk2 NULL/0
3 Trk3 8
4 Unk NULL/0
Я предполагаю, что это потому, что у меня есть WHERE INV_QUANTITY.PART_ID = 1
, и это заставляет его быть в таблице количеств. Я должен быть в состоянии проверить, что это находится на правильной части, но как мне также включить это, если это не существует. Я знаю, что раньше делал что-то очень похожее, но не могу вспомнить, какой проект, и поэтому нигде не могу найти код.