2017-08-11 1 views
1

Ich habe zwei SQL-Abfrage und ich möchte sie in einer einzigen Abfrage verbinden. Sie verwenden die gleiche Tabelle, aber die Zählung aus verschiedenen where-KlauselMYSQL - Unterschiedliche Anzahl mit unterschiedlichen Where-Klausel in einer Abfrage

SELECT count(ad_id) FROM ad where date(ad_added_date) = CURDATE(); 
SELECT count(ad_id) FROM ad where date(ad_disabled_date) = CURDATE(); 

ich mit verschiedenen Trick versucht (wenn dann, Subqueries), aber niemand Arbeit.

Antwort

2

Verwenden Sie einfach bedingte Aggregation.

SELECT sum(date(ad_added_date) = CURDATE()), 
     sum(date(ad_disabled_date) = CURDATE()) 
FROM ad ; 

Dies setzt voraus, dass ad_id nie NULL ist (obwohl diese Bedingung leicht in hinzufügen

+0

ich nicht tat Ich denke, es könnte so einfach sein – Okn

0

dies tun konnte

SELECT 
(SELECT count(ad_id) FROM ad where date(ad_added_date) = CURDATE()) , 
(SELECT count(ad_id) FROM ad where date(ad_disabled_date) = CURDATE()); 
Verwandte Themen