我正在练习查询,并且对JOIN有疑问。
我有这两个表:
**PRODUCTS**:
id
name
description
**PRODUCT_IMAGES**
id
product_id
image_link
我想使用JOIN合并这两个表,在这里我只想查看产品名称以及与id链接的特定图像。
我通过以下查询尝试做到这一点:
SELECT * FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;
现在的问题是我获得了所有信息,但是我只想查看名称和图像。
答案 0 :(得分:5)
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`;
答案 1 :(得分:3)
将*更改为名称,图像链接:
SELECT name, image_link FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;
答案 2 :(得分:2)
SELECT products.id,products.name FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;
您可以用逗号分隔*
,而不用column names
。
您可以根据需要选择LEFT JOIN
或INNER JOIN
。
答案 3 :(得分:2)
在select语句中选择所需的列。最好将表和列一起命名。否则,如果两个表中都存在具有相同名称的列,则会引发错误。
SELECT `products`.`name`,`product_images`.`image_link`
FROM `product_images`
LEFT JOIN `products`
ON `product_images`.`products.id` = `products`.`id`;
答案 4 :(得分:1)
简单使用内部联接
SELECT
p.name,
i.image_link
FROM
products p
JOIN
product_images i USING(product_id)
答案 5 :(得分:0)
如果确定,两个表中都有数据,请使用以下内容 从product_images PI中选择P.name,PI.image_link 内部JOIN产品P 开启P.id = PI.product_id
如果您确定产品表中有数据,但可能不在product_image中,请在下面使用 从产品P中选择P.name,PI.image_link 左JOIN product_images PI 开启P.id = PI.product_id