Отображение столбца данных из двух внешних ключей - PullRequest
0 голосов
/ 12 мая 2018

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

ERD

Это то, с чем я выступил до сих пор:

SELECT s.StkName, c.CityName AS "Manufacturer City", c.CityName AS 
"Warehouse City", s.SellingPrice FROM
STOCKITEM7364 s
LEFT OUTER JOIN MANUFACTURER7364 m ON m.ManID = s.ManID
LEFT OUTER JOIN CITY7364 c ON c.CityID = m.CityID
LEFT OUTER JOIN WAREHOUSE7364 w ON w.WHID = s.WHID AND w.CityID = c.CityID
WHERE s.StkName LIKE '%n' OR s.StkName LIKE '%e' OR s.StkName LIKE '%o' OR 
s.StkName LIKE '%p' OR s.StkName LIKE '%s';

Я действительно ценю любую помощь или объяснения относительноSQL

1 Ответ

0 голосов
/ 12 мая 2018

Вам нужно присоединиться к таблице названий городов дважды, один раз для производителя и один раз для склада. Попробуйте это:

SELECT s.StkName, cm.CityName AS "Manufacturer City", cw.CityName AS 
"Warehouse City", s.SellingPrice FROM
STOCKITEM7364 s
LEFT JOIN MANUFACTURER7364 m ON m.ManID = s.ManID
LEFT JOIN CITY7364 cm ON c.CityID = m.CityID
LEFT JOIN WAREHOUSE7364 w ON w.WHID = s.WHID
LEFT JOIN CITY7364 cw ON c.CityID = w.CityID
WHERE s.StkName LIKE '%n' OR s.StkName LIKE '%e' OR s.StkName LIKE '%o' OR 
s.StkName LIKE '%p' OR s.StkName LIKE '%s';

Обратите внимание, что OUTER не требуется в LEFT JOIN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...