Объедините несколько таблиц, используя mysql и множество внешних ключей. - PullRequest
0 голосов
/ 30 октября 2018

Используя MySQL, у меня есть 3 таблицы следующим образом:

locations (id, name)
products(id, description)
inventory_records(id, product_id, move_from, move_to)

product_id является FK для продуктов ; move_from и move_to от FK до местоположений .

В следующем запросе перечислены все названия продуктов и их происхождение.

select
    products.description,
    locations.name
from
    inventory_records
inner join products on
    products.id = inventory_records.product_id
inner join locations on
    locations.id = inventory_records.move_from    
limit 10;

Но я хочу перечислить места отправления и назначения, которые я не смог составить для запроса. Любая помощь?

1 Ответ

0 голосов
/ 30 октября 2018

Вам нужно будет два раза присоединиться к столу locations. Первое присоединение будет move_from; и соединение второй таблицы будет на move_to.

Также обратите внимание, что рекомендуется использовать Псевдоним в случае многостоловых запросов для ясности кода, читабельности и однозначного поведения.

SELECT
    products.description,
    lfrom.name AS move_from_location, 
    lto.name AS move_to_location 
FROM
    inventory_records
INNER JOIN products ON
    products.id = inventory_records.product_id
INNER JOIN locations AS lfrom ON
    lfrom.id = inventory_records.move_from    
INNER JOIN locations AS lto ON
    lto.id = inventory_records.move_to  
LIMIT 10;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...