sql >> Database >  >> RDS >> Mysql

Hulp nodig bij deze MySQL-query. Gebruikers vinden die op een bepaald tijdstip beschikbaar zijn

select *
from users u    
where u.Assignable = 1
    and u.UserID not in (
       select UserID
       from Appointments a
         join TimeSlots t on a.TimeSlotID = t.TimeSlotID 
       where t.EndTime > now()
          and t.EndTime > @desiredStartTime
          and t.StartTime < @desiredEndTime
    )

bewerken Een cue van tandu nemen

Ik denk dat dit ook zou werken, en het heeft het extra prestatievoordeel dat er geen subquery's zijn:

select *
from users u    
    left join Appointments a on a.UserID = u.UserID
    left join TimeSlots t on (
    a.TimeSlotID = t.TimeSlotID 
       and t.EndTime > now()
       and t.EndTime > @desiredStartTime
       and t.StartTime < @desiredEndTime
    )
where 
    u.Assignable = 1
    and t.TimeSlotID is null


  1. Php Mysqli aangepaste foutmeldingen

  2. Zorgt Connection Pooling ervoor dat Java Swing Application sneller werkt voor externe MySQL-database?

  3. Hoe krijg ik de ID van een rij met MAX- en MIN-waarden in SQL?

  4. mysql importeren op windows