MySql列出表1中有条件地存在项目的所有项目

时间:2015-03-07 00:48:29

标签: php mysql

表-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查询来执行此操作。

2 个答案:

答案 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'。 希望我能提供帮助。