Mysql
 sql >> Database >  >> RDS >> Mysql

Restituisce i risultati della query in base alla data odierna in SQL (MySQL) Parte 2

Ti consigliamo di prima JOIN l'altra tabella sulla prima utilizzando colonne correlate (suppongo id nell'altra tabella è correlato a table_c_id ).

E come ho affermato nella mia risposta alla tua domanda precedente, è meglio fare il confronto sulla colonna datetime nuda in modo che la query rimanga sargable (cioè in grado di utilizzare gli indici):

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 

Ciò presuppone la crm_date_time_column non conterrà mai orari futuri (ad es. domani, il prossimo mese, ecc.), ma se possibile, dovresti semplicemente aggiungere:

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

come un'altra condizione nel WHERE clausola.