Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

इस MySQL क्वेरी के साथ मदद चाहिए। एक निश्चित समय पर उपलब्ध उपयोगकर्ताओं को ढूँढना

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
    )

संपादित करें तंदू से संकेत लेते हुए

मुझे लगता है कि यह भी काम करेगा, और इसमें बिना सबक्वेरी के अतिरिक्त प्रदर्शन लाभ है:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं MySQL त्रुटि #1064 को कैसे ठीक कर सकता हूं?

  2. MySQL में दो स्ट्रिंग्स की तुलना करें

  3. तीन या अधिक तालिकाओं से डेटा कैसे प्राप्त करें?

  4. php + mysql + गूगल मैप

  5. एक ही टेबल पर कई-से-अनेक