sql >> Databáze >  >> RDS >> Mysql

Použití aliasu dotazu pro spojení s jinou tabulkou MySQL

Můžete se připojit k kickscooter_control_units na váš subquery použití exists klíčové slovo spíše než 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'))  

Na základě vašeho scénáře se zdá, že filtrujete ID . exists použitelný pouze v případě, že chcete zkontrolovat, zda určitý subquery obsahuje hodnoty.

 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. MySQL - příkaz CASE vs IF vs funkce IF

  2. 5 rychlých užitečných tipů pro SQL Server Production DBA

  3. Protokol dotazů Oracle XE

  4. Escape zalomení řádků ve výstupu MySQL