【发布时间】:2020-10-24 14:22:42
【问题描述】:
你好,我需要你的帮助。
我有这个数据库架构,我想进行“选择”以返回所有“产品”,其中brands.brand_slug = "acer" 和 categories.category_slug = "laptop em>”。 例如,我想要 Acer 在笔记本电脑类别中制造的所有产品的列表。
我尝试使用此命令行,但显然我收到了所有制造商生产的所有笔记本电脑的列表...
我应该如何进行?
SELECT products.product_slug,
products.product_description,
products.product_img,
products.product_is_on_top,
products.product_title
FROM products
LEFT OUTER JOIN categories ON products.category=categories.category_slug
LEFT OUTER JOIN brand_category ON categories.category_slug=brand_category.category_slug
LEFT OUTER JOIN brands ON brand_category.brand_slug=brands.brand_slug
WHERE brands.brand_slug= "acer"
AND categories.category_slug="laptop"
【问题讨论】:
-
使用内连接代替外连接。
-
我试过了,但结果相同(返回所有制造商的所有笔记本电脑产品的列表)。我认为他这样做是因为他不知道哪个产品属于哪个制造商。 “品牌”和“类别”之间存在 “ManytoMany” 关系,“类别”和“产品”之间存在 “OneToMany” 关系。
标签: mysql sql many-to-many one-to-many entity-relationship