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

#php #sql #database

#php #sql #База данных

Вопрос:

Я практикуюсь с запросами, и у меня есть вопрос о 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`;
  

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

Комментарии:

1. Изменить * на name, image

2. "SELECT p.name,i.image_link FROM products p JOIN product_images i using(product_id)"

Ответ №1:

У вас ошибка с 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`;
  

Ответ №2:

Измените * на name, image_link:

 SELECT name, image_link FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;
  

Ответ №3:

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

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

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

Ответ №4:

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

 SELECT `products`.`name`,`product_images`.`image_link` 
FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;
  

Ответ №5:

Простое использование inner join

 SELECT
    p.name,
    i.image_link 
FROM
    products p 
    JOIN
        product_images i USING(product_id)
  

Ответ №6:

Если вы уверены, что у вас есть данные в обеих таблицах, тогда используйте приведенный ниже ВЫБОР P.name, PI.image_link ИЗ product_images PI внутреннее ОБЪЕДИНЕНИЕ продуктов P НА P.id = PI.product_id


Если вы уверены, что у вас есть данные в таблице product, но их может не быть в product_image, тогда используйте below SELECT P.name , PI.image_link ИЗ products P слева JOIN product_images PI НА P.id = PI.product_id