4つのテーブルを使用してデータを取得しようとしています。テーブルの 一覧複数のテーブルで最適な方法でクエリ結果を返します
- 番号
- 通話
- ref_label_no
- ラベル
私は通話の番号の無いが、特定のラベルが添付データを取得したいです。 ここに表があります。
番号テーブル:
select id,uuid,number from numbers limit 1;
+----+--------------------------------------+------------+
| id | uuid | number |
+----+--------------------------------------+------------+
| 1 | ed268b05-758e-44fd-b429-8d5223651814 | 1234561222 |
+----+--------------------------------------+------------+
コール表
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表
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)
ラベルテーブル
mysql> select uuid,name from labels limit 1;
+--------------------------------------+-------+
| uuid | name |
+--------------------------------------+-------+
| 7262b06e-9263-4825-8411-4c107104a60b | INDIA |
+--------------------------------------+-------+
1 row in set (0.00 sec)
は、今私は、合計通話と通話番号のようになりたい。私は、クエリの下に行われてきたが、何の成功はまた、応答にあまりにも多くの時間を割いていない
mysql> select uuid,name from labels limit 1;
+--------------------------------------+-------+
| Number | Total_calls |
+--------------------------------------+-------+
| 13456789 | 2 |
+--------------------------------------+-------+
1 row in set (0.00 sec)
[この出力は私が必要としました]。
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;
任意の提案または推奨ですか?
'ref_label_no'表はどのような役割を果たしているん:
次のクエリを使用すると、条件EXISTS?そして、あなたがUUIDを使用しているのはなぜですか?また、これらのテーブルにも自動インクリメント列があるようです。 UUIDを使用する場合、自動インクリメントは必要ありません。 – e4c5
ref_label_noテーブルには番号ラベルや番号テーブルuuidなどのすべてのrefrence値が含まれています。主キーに基づいていないuuidの参照値を使用しています。 –
コメントはあまり明確ではありません申し訳ありません – e4c5