Ich habe drei Tabellen:MySQL Query - SUM von COUNT aus mehreren Tabellen
- Kunden: id, name
- contracts_jewels: id, customer_id, bezahlt, übertragen, final_date
- contracts_objects: id, customer_id, bezahlt, übertragen, final_date
Wie Sie sehen, ist die Struktur der letzten beiden Tabellen identisch. Die „bezahlt“ und die „übertragen“ Felder den Wert 0 oder 1 enthalten
Was ich brauche, ist eine Abfrage zu machen, die alle Kunden zurückgeben sollte (ganz gleich, ob sie Verträge haben oder nicht) und für jeden Kunden: id, name, count_contracts_all, count_contracts_active
wo:
- count_contracts_all würde die Summe von [SELECT COUNT (*) FROM contracts_jewels WHERE customer_id = 3 (zum Beispiel)] bedeuten, und [ COUNT (*) FROM contracts_objects SELECT WHERE customer_id = 3 (zum Beispiel)]
- count_contracts_active würde die Summe der mean [SELECT COUNT (*) FROM contracts_jewels WHERE customer_id = 3 und final_date> = Now() und bezahlt = 0 uND übertragen = 0] und [SELECT COUNT (*) FROM contracts_objects WHERE customer_id = 3 UND final_date> = Jetzt() UND bezahlt = 0 UND übertragen = 0]
Irgendeine Idee? Würden Sie mir bitte helfen? Vielen Dank!
Ich denke, eine UNION Ihnen helfen können: SELECT field_1 [, field_2, ...] VON table_1 [, table_2, ...] UNION [ALL] SELECT Field_A [, Field_B, ...] VON TABLE_A [ , table_b, ...]; ' – Holger