2015-12-08 36 views
-3

我有像下面两个表:如何使用PHP + MySQL执行JOIN操作并删除重复的行?

表一个

tablea

表-B

tableb

颜色代码显示表中的如何的条目有关系。 table-a显示项目名称和它的组成标签(让它成为它的成分/组件的ID)。表b显示了物品可用的形式,例如,项目1111可用于杯子,项目2222锥形和条形等。我需要的是,当我给tagid时,我想检索相应的type s,其中它是可用的。

如果它给101,102,它应该返回;

cup 

如果给101,103,它应该返回;

cone 
bar 
cup 

在第二种情况下,请注意,它实际上返回

cone 
bar 
cone 
cup 

但我不想cone重复。我不想要重复的行。

我该怎么做?这是一种JOIN操作?我使用PHP + MySQL。在MySQL的帮助下,这可能吗?

+2

您可以使用GROUP BY特定ID –

+0

的SELECT DISTINCT是要走的路。 (为什么在不涉及集合函数的情况下进行分组......?) – jarlh

回答

2

MySQL查询例如:

select distinct type 
from tableb b inner join tablea a on b.product = a.item 
where a.tagid IN (101,103) 
0
SELECT tableb.type 
FROM tableb INNER JOIN tablea ON tablea.item = tableb.product 
WHERE tablea.tagid IN ('YOUR-IDS-ARRAY') 
GROUP BY tableb.type; 
0
select type from tableb b inner join tablea a on b.product = a.item where a.tagid IN (101,103) group by type 
+0

当您执行SELECT DISTINCT时,不需要该GROUP BY ... – jarlh