2016-07-08 15 views
0

別のテーブルからのカウントが最初のテーブルからの数に等しい場合、あるテーブルからアイテムの結果を表示しようとしています。私は今何週間もこれをやろうとしているので、最終的に助けを求めることにしました。私が必要としていることを正確に説明するのは難しいですが、私はベストを尽くします。2つのテーブルから1つの結果セットを表示

私はmysqlである自分のデータベースと対話するためにPDOを使用しています。例えば

私は2つのテーブルを有する:

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項目が存在するであろうが。したがって、これらの2つのカウントが表1の合計と等しいため、結果として項目1と項目3が表示されます。

私はこれを十分に説明したいと思う。あなたがそれを行うために、SQLクエリを使用する場合は

答えて

1

、これを試してみてください。私がまさに必要であるように思わ

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にnumberと呼ばれるフィールドが追加されました。重複をどのように除外しますか?だから1、2、1の数字が3の代わりに2として表示されます。 – Adonai

+0

@Adonaiあなたの説明はあまり明確ではありませんが、私は新しい質問をするべきだと思います。 – Blank

関連する問題