显示两个表的单组结果

时间:2016-07-08 02:51:28

标签: mysql

我试图显示一个表中项目的结果,其中来自另一个表的计数等于第一个表中的数字。我已经被困在如何这样做了几个星期,所以我终于决定寻求帮助。我很难解释我需要什么,但我会尽我所能。

我正在使用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 

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

我希望我能够很好地解释这一点。

1 个答案:

答案 0 :(得分: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