Соедините 3 таблицы с MySQL - PullRequest
0 голосов
/ 27 марта 2020

У меня есть следующие таблицы:

Products
prod_id  |  prod_name  |  prod_price


Supermarket
supermarket_id  |  name  |  address


supermarket_product
supermarket_id | product_id

Как мне объединить эти таблицы, чтобы получить таблицу, которая отображает всю информацию из таблиц продуктов и супермаркетов в одной большой таблице? Я просто пытаюсь создать таблицу, в которой будет указано, какой продукт принадлежит какому супермаркету на его основе.

Я попробовал следующее, но оно не работает:

SELECT prod_name, prod_price, supermarkets.name 
FROM products 
INNER JOIN supermarkets 
    ON supermarket_product.supermarket_id = supermarket.supermarket_id;

Ответы [ 2 ]

1 голос
/ 27 марта 2020

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

SELECT p.prod_name, p.prod_price, s.name 
FROM products p
INNER JOIN supermarket_product sp ON sp.product_id = p.prod_id
INNER JOIN supermarket s on s.supermarket_id = sp.supermarket_id
1 голос
/ 27 марта 2020

Вам нужно присоединиться к продуктам и супермаркетам через бридж-стол supermarket_product:

select p.*, s.*
from products p
inner join supermarket_product sp on sp.product_id = p.prod_id
inner join supermarket s on s.supermarket_id = sp.supermarket_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...