与他人加入多对多表格

时间:2019-06-26 05:33:24

标签: mysql join

我有一个查询,该查询将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:我想获取类别名称,并在其他列中加入我的代码。

1 个答案:

答案 0 :(得分:0)

您只需要在查询中再添加2个JOIN

  • 加入oc_productoc_product_to_category将产品与其类别链接起来
  • 然后加入oc_product_to_categoryoc_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;

正如您所指出的,对实际表名使用别名有助于简化SELECTJOIN-ON段中的部分查询。

我创建了一个quick example here来显示结果。