我有一个查询,该查询将3个表连接到产品ID上,这是代码。
with open(os.path.join(path,filename) ,'r') as f:
我获得了product_id,图像,价格和描述,但我也需要获取类别名称,该产品与类别表有许多关系。看起来像这样。
[oc_product_to_category *数据透视表] [1]
我需要从此表中获取类别名称。
[oc_category_description] [2]
[1] https://i.stack.imgur.com/5WAKd.png
[2] https://i.stack.imgur.com/YNcLn.png
非常感谢您,我对此深感困惑!
PS:我想获取类别名称,并在其他列中加入我的代码。
答案 0 :(得分:0)
您只需要在查询中再添加2个JOIN
:
oc_product
→oc_product_to_category
将产品与其类别链接起来oc_product_to_category
→oc_category_description
来抓住
类别详细信息通过这种方式,您可以在查询中包括任何联接表中所需的字段。
SELECT p.product_id, p.image, p.price, d.name, c.name, c.description
FROM oc_product AS p
JOIN oc_product_description AS d
ON p.product_id = d.product_id
JOIN oc_product_to_category AS pc
ON pc.product_id = p.product_id
JOIN oc_category_description AS c
ON c.category_id = pc.category_id;
正如您所指出的,对实际表名使用别名有助于简化SELECT
和JOIN
-ON
段中的部分查询。
我创建了一个quick example here来显示结果。