Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zwróć wyniki zapytania na podstawie dzisiejszej daty w SQL (MySQL) Część 2

Najpierw będziesz chciał JOIN drugą tabelę na pierwszą używając powiązanych kolumn (zakładam id w drugiej tabeli jest powiązany z table_c_id ).

I jak już wspomniałem w mojej odpowiedzi do poprzedniego pytania, lepiej zrobić porównanie na samej kolumnie datetime, aby zapytanie pozostało sargable (tj. mogło korzystać z indeksów):

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 

Zakłada to crm_date_time_column nigdy nie będzie zawierać czasów z przyszłości (np. jutro, w przyszłym miesiącu itp.), ale jeśli to możliwe, wystarczy dodać:

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

jako kolejny warunek w WHERE klauzula.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dołączyć zmienną PHP do instrukcji MySQL?

  2. Importuj duży plik .sql do MySQL

  3. Eksportowanie wyników zapytań w MySQL Workbench poza 1000 rekordów

  4. Czy szybciej czy lepiej jest używać MySQL zamiast plików tekstowych lub nazw plików do porządkowania obrazów w PHP?

  5. Utwórz widok podsumowania w MySQL, przestawiając wiersz na dynamiczną liczbę kolumn