Mysql SQL如何返回一个表的所有行,并按id限制另一个表的行,并将它们联接起来

Mysql SQL如何返回一个表的所有行,并按id限制另一个表的行,并将它们联接起来,mysql,sql-server,Mysql,Sql Server,如何返回timeslot表中的所有行,并按employeeId限制咨询表中的行 此查询返回employeeId为1的条目 SELECT TimeSlot, conStart, firstName, lastName, phoneNumber FROM TimeSlots LEFT JOIN consultation ON TimeSlots.TimeSlot = consultation.conStart LEFT JOIN patient ON consultation.patientId =

如何返回timeslot表中的所有行,并按employeeId限制咨询表中的行

此查询返回employeeId为1的条目

SELECT TimeSlot, conStart, firstName, lastName, phoneNumber
FROM TimeSlots
LEFT JOIN consultation
ON TimeSlots.TimeSlot = consultation.conStart
LEFT JOIN patient
ON consultation.patientId = patient.patientID
WHERE employeeId = 1 
这给了我这个

11:00:00.0000000    11:00:00.0000000    chris   wilson  6666666666
我想知道如何显示所有的时间段,但只显示来自 一名雇员ID

这就是我想要的结果

09:00:00.0000000    NULL    NULL    NULL    NULL

09:20:00.0000000    NULL    NULL    NULL    NULL

09:40:00.0000000    NULL    NULL    NULL    NULL

10:00:00.0000000    NULL    NULL    NULL    NULL

10:20:00.0000000    10:20   tim     is      1111111111

10:40:00.0000000    NULL    NULL    NULL    NULL

11:00:00.0000000    11:00   chris   wilson  6666666666

11:20:00.0000000    NULL    NULL    NULL    NULL
`试试这个

SELECT TimeSlot, conStart, firstName, lastName, phoneNumber
FROM TimeSlots
     LEFT JOIN (consultation
                LEFT JOIN patient
                ON consultation.patientId = patient.patientID)
     ON TimeSlots.TimeSlot = consultation.conStart AND TimeSlots.employeeId = 1 

employeeid在哪个表中?您应该在该表的联接条件中包含employeeid。e、 g.如果employeeId位于
咨询
表中,则在左侧连接处包含
和employeeId=1
。你现在的where条件基本上是让它成为一个常规的加入。哈哈,我知道它必须是非常简单的东西,上周我一直在为此苦恼。我刚刚尝试了这个,它很有效,非常感谢。只标记适当的RDM
SELECT TimeSlot, conStart, firstName, lastName, phoneNumber
FROM TimeSlots
     LEFT JOIN (consultation
                LEFT JOIN patient
                ON consultation.patientId = patient.patientID)
     ON TimeSlots.TimeSlot = consultation.conStart AND TimeSlots.employeeId = 1