SQL

SQL. Выводятся не все данные. 4 задача.

Делаю запрос: SELECT P.VALUE, M.NAME , G.NAME
FROM GOODS AS G INNER JOIN PRICES AS P ON G.ID = P.GOODS_ID LEFT OUTER JOIN Manufacturer AS M ON M.ID = G.supplier_id
Марат Акрамов
Марат Акрамов
1 008
я, когда не получается, вспоминаю стишок "Дом, который построил Джек".
что-то вроде восходящего программирования:

вытаскиваем производителей из москвы:
 SELECT 
M.Name as Manufacturer_Name
FROM
Manufacturer M
WHERE
M.location = 'Москва'

теперь цепляем к ним поставщиков, с которыми они работают:
 SELECT  
M.Name as Manufacturer_Name
FROM
Manufacturer M
JOIN Suppliers S ON M.ID = S.Manufacturer_ID
WHERE
M.location = 'Москва'

добавляем инфу о товарах:
 SELECT
G.Name as Goods_Name,
M.Name as Manufacturer_Name
FROM
Manufacturer M
JOIN Suppliers S ON M.ID = S.Manufacturer_ID
JOIN Goods G ON S.ID = G.Supplier_ID
WHERE
M.location = 'Москва'

и, наконец, цепляем цены:
 SELECT 
G.Name as Goods_Name,
P.Value,
M.Name as Manufacturer_Name
FROM
Manufacturer M
JOIN Suppliers S ON M.ID = S.Manufacturer_ID
JOIN Goods G ON S.ID = G.Supplier_ID
JOIN Prices P ON G.ID = P.Goods_ID
WHERE
M.location = 'Москва'

словом, так как-то.
Д.
Денис .
57 205
Лучший ответ
Марат Акрамов Спасибо большое!
Марат Акрамов Спасибо, все работает!!!
"Все варианты "Join" пробовал" ??? не понятно, зачем пробовать все? используйте только тот, который вам нужен

вариант от "Аглая Шниц" понятен, но придирчивый препод может сказать что в тексте задания нужно найти "товары"... и потом уже какие товары, а не "найти производителей из москвы" и потом уже каких именно производителей.
поэтому логика вашего скрипта немного ближе к тексту задания.
однако, чтобы от товара добраться до производителя, вам сперва нужно от товара перейти к поставщику, и затем от поставщика к производителю... т.е. не хватает одного join. и откиньте ненужные в данном случае INNER, LEFT, и OUTER...
ты сам свои рисунки видел?
А ты их настойчиво все выведи.
Или всё, с первого раза сдох?
Алексей Исаев
Алексей Исаев
6 845