现在我有 4 张桌子:
table categories:
-id
-category
table products:
-id
-product
-price
-image
table attributes:
-id
-attribute
-product_id
table values:
-product_id
-attribute_id
-value
我正在查询:
SELECT `id`, `product`, `price`, `image` FROM `products` WHERE `category_id` = $category->id
现在我得到了这个类别的产品数组,需要得到它的属性:下一个查询:
SELECT `products`.`id` AS `product_id`,
`attributes`.`attribute`,
`values`.`value`
FROM `products` LEFT JOIN `attributes` ON (`attributes`.`product_id` = `products`.`id`)
LEFT JOIN `values` ON (`values`.`product_id` = `products`.`id`
AND `values`.`attribute_id` = `attributes`.`id`)
WHERE `products`.`id` IN ($ids)
它通过值获取属性,但我想知道一件事:是否有可能摆脱'product_id'
列table attributes
并在没有该列的情况下获取属性和值?现在它是一大堆重复的属性,例如:
table attributes
-id 1
-attribute Weight
-product_id 1
-id 2
-attribute Weight
-product_id 2
虽然我只想:
-id 1
-attribute Weight
对不起我的英语,如果我的帖子的某些部分需要更多解释,请让我现在