Я хочу использовать JOIN для запроса, и я хочу показать только название продукта с изображением - PullRequest
0 голосов
/ 28 марта 2019

Я практикуюсь с запросами, и у меня есть вопрос о JOIN.

У меня есть эти 2 таблицы:

**PRODUCTS**:

id

name

description

**PRODUCT_IMAGES**

id

product_id

image_link

И я хочу использовать JOIN, чтобы объединить эти 2 таблицы, где я хочу видеть только название продукта с определенным изображением, которое связано с идентификатором.

Я пытаюсь ответить на этот вопрос:

SELECT * FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;

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

Ответы [ 6 ]

5 голосов
/ 28 марта 2019

У вас ошибка с product_images. id, как и должно быть "product_images. product_id", я исправил это, любезно используйте этот запрос.

SELECT products.name, product_images.image_link FROM `product_images`
INNER JOIN `products`
ON `product_images`.`product_id` = `products`.`id`;
3 голосов
/ 28 марта 2019

Изменить * на имя, ссылка на изображение:

SELECT name, image_link FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;
2 голосов
/ 28 марта 2019

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

SELECT `products`.`name`,`product_images`.`image_link` 
FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;
2 голосов
/ 28 марта 2019
SELECT products.id,products.name FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;

Вместо * вы можете поставить column names через запятую.

Вы можете выбрать LEFT JOIN или INNER JOIN в соответствии с вашими потребностями.

1 голос
/ 28 марта 2019

Простое использование внутреннего соединения

SELECT
    p.name,
    i.image_link 
FROM
    products p 
    JOIN
        product_images i USING(product_id)
0 голосов
/ 28 марта 2019

Если вы уверены, что у вас есть данные в обеих таблицах, используйте приведенные ниже ВЫБЕРИТЕ P.name, PI.image_link FROM product_images PI внутренние JOIN продукты P ON P.id = PI.product_id


Если вы уверены, что у вас есть данные в таблице товаров, но их нет в product_image, используйте ниже. ВЫБЕРИТЕ P.name, PI.image_link ИЗ ПРОДУКТОВ P оставил ПРИСОЕДИНИТЬСЯ product_images PI ON P.id = PI.product_id

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