SELECT *
FROM
productinfo as p ,
category as c
WHERE
c.id IN (p.category) AND
p.pid='T3'
WHERE p.category将从产品信息表中返回(1,2,3,4,5)该类别的ID。
现在我需要用于T3 [产品ID]的类别名称,但我只获得第一个类别名称。
答案 0 :(得分:0)
您的基本查询如下
SELECT * FROM productinfo as p WHERE p.pid = 'T3';
现在您需要为每个产品提供类别。这是多对一的关系,所以你需要一个LEFT JOIN。
SELECT * FROM productinfo as p
LEFT JOIN category as c ON c.id = p.category
WHERE p.id = 'T3'
您需要了解不同类型的连接以及它们的使用方式。每当我看到有人使用'FROM table1,table2'时,90%的时间意味着他们不理解连接,而是需要LEFT JOIN。
根据您的评论进行修改
您的数据模型存在缺陷。由于产品可以包含多个类别,因此这实际上是多对多关系。您应该创建一个product_category表,将产品ID与类别ID连接起来。