表-1 parts
是完整的零件目录。主索引字段为PartID
(int,auto-increment)。
表-2 inventory
是连接到各种分销商的partID列表。重要字段是DistID和PartID。主索引字段为InvID
(int,auto-increment)。
在表2中,分销商的每个部分都有一个唯一的条目(InvID),因此有许多重复的DistID / PartID条目。
鉴于特定DistID
,我必须首先获得与该PartID
(广告资源表-2)相关联的所有DistID
的列表,然后SELECT * FROM parts
(表格) -1)适用于所有PartID
s。
最终结果集是分销商(T2)持有的每个独特零件的所有零件信息(T1)的列表。
我想使用单个mysql查询来执行此操作。
答案 0 :(得分:2)
您想要的是从该分销商的inventory
的不同列表开始。这是我们的基本查询(用您的实际经销商ID替换问号):
SELECT DISTINCT partID FROM inventory WHERE DistID = ?
然后我们修改该查询以加入parts
表以撤回部件信息:
SELECT DISTINCT i.partID, p.* FROM inventory i INNER JOIN parts p ON i.partID = p.partID WHERE i.DistID = ?
答案 1 :(得分:2)
这根本不是一个PHP问题。
无论如何,如果我理解你的问题你应该试试这个:
SELECT parts.* FROM parts WHERE parts.PartID IN (SELECT invetory.PartID FROM invetory WHERE invetory.DistID = 'wanted_DistID');
您应该为想要的DistID更改'wanted_DistID'。 希望我能提供帮助。