Ich versuche, Daten mit 4 Tabellen zu bekommen. Liste der TabellenAbfrage Ergebnis mit optimierten Weg mit mehreren Tabellen
- Zahlen
- Anrufe
- ref_label_no
- Etiketten
Ich möchte Daten Anzahl der Anzahl der Anrufe mit speziellen Etiketten angebracht holen. Hier ist Tabelle.
Nummer Tabelle:
select id,uuid,number from numbers limit 1;
+----+--------------------------------------+------------+
| id | uuid | number |
+----+--------------------------------------+------------+
| 1 | ed268b05-758e-44fd-b429-8d5223651814 | 1234561222 |
+----+--------------------------------------+------------+
Call-Tabelle
mysql> select id,uuid,did from calls limit 2;
+----+-------------------------------------+------------+
| id | uuid | number |
+----+-------------------------------------+------------+
| 1 | ddddass-b810-4f23-7456-8ff56efab080 | 1234561222 |
| 2 | dddddd-b810-4f23-7456-8ff56efab080 | 123456789 |
+----+-------------------------------------+------------+
2 rows in set (0.02 sec)
ref_label_no Tabelle
mysql> select uuid,number_uuid,label_uuid from ref_label_no limit 1;
+--------------------------------------+--------------------------------------+--------------------------------------+
| uuid | number_uuid | label_uuid |
+--------------------------------------+--------------------------------------+--------------------------------------+
| 7a5e1b6e-0194-4993-8d78-5f7a1b60c7d2 | ed268b05-758e-44fd-b429-8d5223651814 | 7262b06e-9263-4825-8411-4c107104a60b |
+--------------------------------------+--------------------------------------+--------------------------------------+
1 row in set (0.00 sec)
Tabelle Etiketten
mysql> select uuid,name from labels limit 1;
+--------------------------------------+-------+
| uuid | name |
+--------------------------------------+-------+
| 7262b06e-9263-4825-8411-4c107104a60b | INDIA |
+--------------------------------------+-------+
1 row in set (0.00 sec)
Jetzt möchte ich wie Anrufe Zahl mit insgesamt Anrufe führen. [Dieser Ausgang i benötigt]
mysql> select uuid,name from labels limit 1;
+--------------------------------------+-------+
| Number | Total_calls |
+--------------------------------------+-------+
| 13456789 | 2 |
+--------------------------------------+-------+
1 row in set (0.00 sec)
Ich habe unten Abfrage gemacht, aber kein Erfolg auch zu viel Zeit bis zum Ansprechen nehmen.
select count(*) as Total_calls,calls.number as did,labels.name,calls.created_at as callstart from calls, labels JOIN ref_label_no ON labels.uuid = ref_label_no.label_uuid JOIN numbers ON numbers.uuid = ref_label_no.number_uuid where labels.name="INDIA" group by calls.number;
Irgendwelche Vorschläge oder Empfehlungen?
welche Rolle spielt 'ref_label_no' Tisch spielen? Und warum verwenden Sie UUID, wenn es scheint, dass Sie in diesen Tabellen auch eine Spalte für die automatische Inkrementierung haben. Wenn Sie UUID verwenden, benötigen Sie kein automatisches Inkrement. – e4c5
Die Tabelle ref_label_no enthält alle refrence-Werte wie Nummernlabel und Zahlentabelle uuid. Wir verwenden den Referenzwert für uuid, der nicht auf dem Primärschlüssel basiert. –
Es tut mir leid, dass der Kommentar nicht sehr klar ist – e4c5