2017-03-15 13 views
-1

値に、表#1 => tbl_notification_flowは、以下の情報を持っているベースのカウント MySQLの選択は、選択サブクエリは、私は2つのテーブルを持っている

が、私は回数に基づいて、すべてのapp_statusの数を取得したい、IDで

id app_status 
1 Booked 
3 Missed 
4 Missed 
5 Missed 
6 Missed 
7 Booked 
8 Booked 
9 Booked 
10 Booked 
11 Booked 
12 Booked 
13 Booked 
14 Booked 
15 Booked 
17 Booked 
18 Booked 
19 Booked 
20 Defaulted 
21 Notified 

と列であることapp_status:以下の情報を持っています

total_count app_status 
19 Booked 

右の結果を得るために最適なクエリで助けてください:それは、次の結果を得る

SELECT COUNT(tbl_appointment.id)AS total_count, tbl_appointment.`app_status` 
FROM tbl_appointment 
WHERE (tbl_appointment.`app_status`) IN 
(
SELECT tbl_notification_flow.`notification_type` AS app_status FROM tbl_notification_flow WHERE tbl_notification_flow.notification_type !='Other' 
) 

:彼らは私が次のクエリを試してみました、表の第2位に

を登場しています。

+1

あなたは 'グループby'が欠落しています。 –

答えて

0

app_statusでデータを集計する必要があります。ここで

は参照です:

SELECT COUNT(tbl_appointment.id)AS total_count,tbl_appointment.`app_status` 
FROM tbl_appointment 
WHERE (tbl_appointment.`app_status`) IN 
(
SELECT tbl_notification_flow.`notification_type` AS app_status 
FROM tbl_notification_flow 
WHERE tbl_notification_flow.notification_type !='Other' 
) 
GROUP BY tbl_appointment.`app_status` 
0

使用GROUP BYあなたが0を取得したい、その場合にはtbl_appointmentにおける特定の種類のイベントがないときの状況を考慮して、通知タイプと、レバレッジLEFT JOINごとにカウントします結果セットに不在行が表示されるのではありません。

SELECT n.notification_type app_status, COUNT(a.id) count 
    FROM tbl_notification_flow n LEFT JOIN tbl_appointment a 
    ON n.notification_type = a.app_status 
WHERE n.notification_type <> 'Other' 
GROUP BY n.notification_type 

出力:

 
+------------+-------------+ 
| app_status | total_count | 
+------------+-------------+ 
| Booked  |   13 | 
| Defaulted |   1 | 
| Missed  |   4 | 
| Notified |   1 | 
+------------+-------------+ 
関連する問題