Ich habe unter Abfrage, Kunden Abonnement zu überprüfen. Dies ist in der Abfrage nicht ganz richtig, aber ich weiß nicht, wie ich sie optimieren oder korrigieren kann. Hier ist es.MySQL Query in schlechter Weise
SELECT sub_id FROM subscription
WHERE start_date = CURDATE()
AND end_date > CURDATE()
AND sub_id NOT IN (SELECT DISTINCT sub_id FROM subscription
WHERE start_date < CURDATE());
Der Grund der Unterabfrage ist, Sub_id herauszufiltern, hat vorher mindestens ein Abonnement getan.
Ich habe fast keine Erfahrung in MySQL, aber Ihre Syntax sieht aus wie Sie im Wesentlichen die gleiche WHERE-Klausel zweimal tun. In Ihrem main eliminieren Sie bereits Datensätze mit start_date <> CURDATE(); Warum haben Sie eine Unterabfrage, die - im Wesentlichen - alle bereits in Ihrer Hauptabfrage eliminierten Datensätze eliminiert? – John
auf der Suche nach neuen Kunden. "WHERE Startdatum
CPMM
Ich denke, Sie haben doppelte Bedingung, 'where start_date = CURDATE()' bereits erhalten die Sub-ID, die in CURDATE() gestartet, und Sie brauchen keine Unterabfrage 'AND sub_id NICHT IN (SELECT DISTINCT Sub_ID FROM Abonnement WHERE Startdatum
ProgrammingBaKa