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

Używanie aliasu zapytania do łączenia się z inną tabelą MySQL

Możesz dołączyć do kickscooter_control_units w Twoim subquery użycie exists słowo kluczowe zamiast IN.

select *
from rents r
where 
  exists 
  (select 1
     from support_works sw
     join kickscooters k on k.serial_number = sw.serial_number
     join kickscooter_control_units kcu on  kcu.kickscooter_id =  k.id and kcu.particle_product_id in (9358, 9383)   
     where
       sw.work_type = 'deploy' and
       (sw.updated_at between '2019-11-01 02:00:00' and '2019-11-01 10:00:00'))  

Wygląda na to, że na podstawie twojego scenariusza filtrujesz ID . exists ma zastosowanie tylko wtedy, gdy chcesz sprawdzić, czy określone subquery zawiera wartości.

 select *
    from rents r
    where 
      r.kickscooter_id in 
      (select k.id
         from support_works sw
         join kickscooters k on k.serial_number = sw.serial_number
         join kickscooter_control_units kcu on  kcu.kickscooter_id =  k.id and kcu.particle_product_id in (9358, 9383)   
         where
           sw.work_type = 'deploy' and
           (sw.updated_at between '2019-11-01 02:00:00' and '2019-11-01 10:00:00'))  



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gdzie mysql przechowuje dane?

  2. Śledzenie w czasie rzeczywistym na mapie google

  3. Klucze podstawowe MySQL

  4. Hibernacja dławi się w przypadku brakujących wierszy podczas pracy ze starszą bazą danych

  5. Indeksowanie kolumny zawierającej zduplikowane wartości