2016-07-08 36 views
0

我想显示一个表中来自另一个表的计数等于来自第一个数字的项目的结果。我一直被困在如何去做这个几个礼拜,所以最后决定寻求帮助。我很难解释我需要什么,但我会尽我所能。显示来自两个表的一组结果

我正在使用PDO与我的数据库,这是mysql的交互。

比如我有两个表:

table 1 
----------------- 
key | name | total 
1 | item 1 | 3 
2 | item 2 | 4 
3 | item 3 | 2 

table 2 
----------------- 
key | table1 key 
1 | 1 
2 | 2 
3 | 3 
4 | 1 
5 | 1 
6 | 3 
7 | 2 
8 | 2 

因此,在这种情况下,将有3/3的项目项目1,项目3/4项目2和2/2项第3项。因此,它会显示第1项和第3项,因为这两项的计数等于表1中的总数。

我希望我解释得很好。

回答

1

如果你想有一个SQL查询来做到这一点,试试这个:

select t1.* 
from table1 t1 
inner join (
    select table1_key, count(1) as cnt from table2 group by table1_key 
) t2 on t1.key = t2.table1_key and t1.total = t2.cnt 

SQLFiddel Demo

+0

真棒,谢谢,这似乎是正是我需要的。现在,如果表2中增加了一个名为数字的字段。我将如何排除重复?所以有一个1,2,1的数字,它只会显示2而不是3。 – Adonai

+0

@Adonai不太清楚你的描述,我想你应该问一个新的问题。 – Blank