sql >> Database >  >> RDS >> Mysql

Retourresultaten van de query op basis van de datum van vandaag in SQL (MySQL) deel 2

Je wilt eerst JOIN de andere tabel op de eerste met behulp van gerelateerde kolommen (ik neem aan dat id in de andere tabel is gerelateerd aan table_c_id ).

En zoals ik had aangegeven in mijn antwoord op uw vorige vraag, kunt u de vergelijking beter maken op de kale datetime-kolom, zodat de zoekopdracht sargable blijft (d.w.z. in staat om indexen te gebruiken):

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 

Dit veronderstelt de crm_date_time_column zal nooit tijden bevatten die in de toekomst liggen (bijv. morgen, volgende maand, enz.), maar als het kan, zou je gewoon toevoegen:

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

als een andere voorwaarde in de WHERE clausule.



  1. Hoe een externe sleutel in SQLite te laten vallen

  2. Cheatsheet voor SQL-opdrachten - SQL leren in 10 minuten

  3. Waarom (en hoe) kolommen splitsen met master..spt_values?

  4. Hoe krijg ik de id na INSERT in MySQL-database met Python?