我有三个表用于列出具有产品属性的产品
Product Table 与虚拟数据
Product_Attributes 与虚拟数据
Attributes 与虚拟数据
Kespersky antivirus(productid = 1)没有属性,但iPhone(productid = 2)有两个适用于它的属性,内存和分辨率都在 Attribute 表中,其值存储在 Product_Attribute 表中 .
如何连接这些表以显示/显示具有相应属性的产品?
EDIT
我需要将这些产品显示为
4 回答
以下内容适用于任意数量的属性:
您的问题需要一个枢轴,需要预定义 . 这意味着,如果要在结果集中包含2个额外的COLUMNS,则查询最多只能存储2个属性 . 这是PRESENTATION图层问题,而不是查询图层 . 但是,唉,我有一个通用的解决方案 . 它假设您将拥有最多2个属性(由于上述原因) . 这是查询:
和SQL小提琴让你玩 . 祝好运!随便问任何问题:)
http://sqlfiddle.com/#!6/49a9e0/5
你可以试试这个:
Output
Philip's答案肯定是好的,他解释了问题,因为如果你不确定窗口函数是否必要,你需要定义一个静态的属性数,所以这里's how I' d这样做: