我想获得一个查询,以返回我的精选项目表中的产品的所有相关记录。所有正在为简单的MYSQL查询工作,但我想获得每个产品两个拇指图像存储在另一个表(product_image),但有一个捕获。在此“product_image”表中,不是每个产品(product_id)都会有一条记录,因为它仅在上传图像时填充,而某些产品可能有多个记录(存储图像),我只希望为每个产品ID返回一条记录。因此,产品表中的产品记录与product_image表有0到很多的关系。MYSQL - 加入或子查询问题
我有一个工作的基本SQL语句的基本没有返回的图像,我可以编码一个查询,只返回在产品图像表中有记录的产品,但我需要查询返回外部的所有行查询,然后1个thumb_img匹配来自图像表的产品ID,如果没有图像,它可以返回一个Null值。
这可能吗?以下是我的最新尝试,但这只是返回第一个product_ID的匹配缩略图,并为其他3个(在此情况下由于限制在最后)记录重复此操作。我需要匹配的每个记录的拇指,而不是匹配的记录在其余的记录之间重复的第一条记录。如果没有该产品ID的记录,则返回null。
SELECT * FROM `products`, `featured_products`, `shop`, (SELECT thumbSrc
FROM product_image
WHERE products.productId = product_image.productID
ORDER BY product_image.position ASC
LIMIT 1) image
where shop.shopId = products.shopId AND featured_products.productId = products.productId AND visible = '1' LIMIT 4
在此先感谢您的任何帮助/反馈。是否有可能这样做,因为我想保持我的数据库尽可能标准化,而不是导致在产品表中存储拇指字段。
了解外部连接。并将product_Image加入产品表,而不是您的方法。我最喜欢的解释这些连接如何工作的网站之一是http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/。 – xQbert
谢谢,我会读入外部连接,非常感谢 – Chicker