2017-02-03 13 views
3

Ich benutze CakePHP 2.0 Framework. Ich möchte die Anzahl der Datensätze jeder Kategorie zählen. Hier ich habe zwei TabellenWie erhält man die Anzahl der einzelnen Kategorien mit Gruppen?

eve_appointment_icons ->having columns- appointment_icon_id,appointment_icon_type_name 
eve_appointments ->having columns- id, appointment_icon_id 

Ich hole haben diese Daten mit dieser Abfrage: -

$this->EveAppointment->query("SELECT 
        a.appointment_type 
        d.appointment_icon_id, 
        a.appointment_icon_id , 
        d.appointment_icon_type_name, 
       FROM eve_appointments a, 
        eve_appointment_icons d 
       WHERE a.appointment_type =1 
       AND d.appointment_icon_id = a.appointment_icon_id 

      UNION 
       SELECT 
        a.appointment_type 
        d.appointment_icon_id, 
        a.appointment_icon_id , 
        d.appointment_icon_type_name, 

       FROM eve_appointments a, 
        eve_appointment_icons d 
       WHERE a.appointment_type =2 
        AND d.appointment_icon_id = a.appointment_icon_id 
      UNION 
       SELECT 
        a.appointment_type 
        d.appointment_icon_id, 
        a.appointment_icon_id , 
        d.appointment_icon_type_name, 
       FROM eve_appointments a, 
        eve_appointment_icons d 
       WHERE a.appointment_type =3 
        AND d.appointment_icon_id = a.appointment_icon_id"); 

hier, wenn ich drucken diese:

Array 
(
[0] => Array 
    (
     [appointment_icon_id] => 1 
     [appointment_icon_type_name] => Yoga 
    ) 
[1] => Array 
    (
     [appointment_icon_id] => 1 
     [appointment_icon_type_name] => Yoga 
    ) 

[2] => Array 
    (
     [appointment_icon_id] => 2 
     [appointment_icon_type_name] => Visit 
    ) 
[3] => Array 
    (
     [appointment_icon_id] => 3 
     [appointment_icon_type_name] => Physio Therapy 
    ) 

[4] => Array 
    (
     [appointment_icon_id] => 4 
     [appointment_icon_type_name] => Diagnostic 
    ) 
[5] => Array 
    (
     [appointment_icon_id] => 4 
     [appointment_icon_type_name] => Diagnostic 
    ) 
[6] => Array 
    (
     [appointment_icon_id] => 4 
     [appointment_icon_type_name] => Diagnostic 
    ) 
) 

Jetzt können Sie die Yoga sehen, die appointment_icon_id ist 1, besuchen Sie appointment_icon_id2 und umgekehrt für andere. Ich möchte alle diese Kategorien zählen. Like:

appointment_icon_type_name count 
Yoga       2 
Visit       1 
Physio Therapy     1 
Diagnostic      3 

Antwort

2

Alles, was Sie benötigen, ist dieses:

select d.appointment_icon_type_name, count(*) 
FROM eve_appointments a, 
eve_appointment_icons d 
WHERE d.appointment_icon_id = a.appointment_icon_id 
group by d.appointment_icon_type_name 
+0

danke seine Arbeits Menschen kühlen Sie meinen Tag Menschen machen :) – kunal

Verwandte Themen