Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt die Ergebnisse der Abfrage basierend auf dem heutigen Datum in SQL (MySQL) Teil 2 zurück

Sie sollten zuerst JOIN die andere Tabelle auf die erste unter Verwendung verwandter Spalten (ich gehe davon aus, dass id in der anderen Tabelle bezieht sich auf table_c_id ).

Und wie ich in meiner Antwort angegeben hatte Zu Ihrer vorherigen Frage ist es besser, den Vergleich in der bloßen datetime-Spalte durchzuführen, damit die Abfrage sargable bleibt (d. h. in der Lage ist, Indizes zu verwenden):

SELECT     a.value
FROM       table_c a
INNER JOIN table_a b ON a.table_c_id = b.id
WHERE      a.table_c_id IN (9,17,25) AND
           b.crm_date_time_column >= UNIX_TIMESTAMP(CURDATE())
GROUP BY   a.value 

Dies setzt die crm_date_time_column voraus wird niemals Zeiten enthalten, die in der Zukunft liegen (z. B. morgen, nächsten Monat usw.), aber wenn es möglich ist, würden Sie einfach hinzufügen:

AND b.crm_date_time_column < UNIX_TIMESTAMP(CURDATE() + INTERVAL 1 DAY)

als weitere Bedingung im WHERE Klausel.