Ни разу не программист, но лет пятнадцать назад похожий запрос однажды построил... Помню, что как-то применил
UNION
и фиктивные поля типа
O AS FIELD
... А еще помню, что потратил на него недели три времени (а может и больше). А сейчас мозги совсем заржавели и не соображу даже с чего начать. А надо примерно следующее:
Есть ТАБЛИЦА "ТАРА":
id1 | НАЗВАНИЕ_ТАРЫ
----+-------------------------
01 | Ящик
02 | Корзинка
03 | Грузовик
Есть ТАБЛИЦА "ГРУЗ":
id2 | НАЗВАНИЕ_ГРУЗА
----+------------------------
01 | Огурцы
02 | Молоко
03 | Туалетная бумага
Есть "ТАБЛИЦА СВЯЗЕЙ":
link1 | link2 | КОЛИЧЕСТВО
------+-----------+--------------------
01 | 01 | 15
01 | 02 | 2
02 | 01 | 4
02 | 03 | 2
03 | 01 | 100
03 | 02 | 60
03 | 03 | 500
И хочется получить:
НАЗВАНИЕ_ТАРЫ | НАЗВАНИЕ_ГРУЗА | КОЛИЧЕСТВО
---------------+--------------------+----------------
Ящик | Огурцы | 15
Ящик | Молоко | 2
Ящик | Туалетная бумага | 0
Корзинка | Огурцы | 4
Корзинка | Молоко | 0
Корзинка | Туалетная бумага | 2
Грузовик | Огурцы | 100
Грузовик | Молоко | 60
Грузовик | Туалетная бумага | 500
То есть надо получить
0
для поля
КОЛИЧЕСТВО
в случаеях, когда объекты не связаны через
ТАБЛИЦА СВЯЗЕЙ
. Как?