2016-10-05 9 views
0

テーブル内のアイテム数を簡単に検索する必要があります。アイテムは他のテーブルにリンクされています。表1は製品であり、表2は注文です。他のテーブルの特定の値を持つテーブルの行数をカウントする

注文には有料ステータス(1または0)が含まれています。

Ordersテーブルの例:

id paid 
1 0 
2 1 

製品テーブルの例:

id orderid type 
1 1  5 
2 1  5 
3 1  3 
4 2  5 
5 2  5 
6 2  3 

製品ID(受注)を含有順序およびタイプを指します。ですから、私は、注文テーブルにタイプ= 5、支払額= 1の商品が必要です。

これを達成するための最善の方法は何ですか。

したがって、タイプ5のすべての有料商品が必要です。結果は「2」になります。

+0

dbスキーマ、サンプルデータ、および予想される結果が必要です。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –

答えて

0

SELECT COUNT(*) AS num_rows 
FROM products 
LEFT JOIN orders ON orders.id = products.orderid 
WHERE type = 5 AND paid = 1 
+0

あなたの答えはSharlikeと同じです –

+0

以前の.iが私の入力していたことに気付かなかったのです。ある意味では全く同じではありませんが、プロセスは同じです。私は私を取り除かなければならない? –

0

1つの方法は、結合ステートメントを使用することです。スキーマに関するいくつかの仮定を作り、以下の作業をする必要があります:あなたはこのように参加使用することができます

SELECT COUNT(p.`id`) FROM `products_table` p 
LEFT JOIN `orders_table` o ON p.`orderid` = o.`id` 
WHERE o.`paid` = 1 
AND p.`type` = 5 
0

おかげでその作業を!私は開始ポストを更新して、他のユーザーのためにもっと明確にしました。

関連する問題