Mysql Select命令不返回任何内容
我需要显示每个医生的可用小时数,但我的代码不返回任何内容 这是我的密码:Mysql Select命令不返回任何内容,mysql,sql,Mysql,Sql,我需要显示每个医生的可用小时数,但我的代码不返回任何内容 这是我的密码: SELECT DISTINCT Hours FROM agenda_hours, doctor WHERE Agenda_Hours.idHours NOT IN (SELECT DISTINCT appoitment_hour.Hour FROM appoitment_hour) AND Doctor.Name IN (SELECT Doctor.Name FROM Doctor Where name = "Name")
SELECT DISTINCT Hours
FROM agenda_hours, doctor
WHERE Agenda_Hours.idHours NOT IN (SELECT DISTINCT appoitment_hour.Hour FROM appoitment_hour)
AND Doctor.Name IN (SELECT Doctor.Name FROM Doctor Where name = "Name");
这是表的说明
+---------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| Name | varchar(100) | NO | | NULL | |
| CRM | varchar(20) | NO | | NULL | |
| Tel | varchar(10) | YES | | NULL | |
| Cel | varchar(10) | YES | | NULL | |
| RG | varchar(40) | YES | | NULL | |
| CPF | varchar(50) | YES | | NULL | |
| Street | varchar(120) | YES | | NULL | |
| num | varchar(7) | YES | | NULL | |
| bairro | varchar(40) | YES | | NULL | |
| city | varchar(70) | YES | | NULL | |
| zip | varchar(13) | YES | | NULL | |
| datanasc | varchar(20) | YES | | NULL | |
| Especiality | varchar(100) | YES | | NULL | |
+---------------+--------------+------+-----+---------+-------+
您的查询在小时和医生之间进行交叉联接,然后查找不在小时列表中的小时。当然,它不会返回任何内容 我想你想要这样的东西:
select DoctorHour.*
from (select d.Name, a.hour
from Doctor d cross join
(select distinct hour from Appointment) a
) DoctorHour left outer join
Appointment a
on a.name = DoctorHour.name and
a.hour = DoctorHour.hour
where a.name is null;
这将获得所有未使用的插槽。除了查询的正确性或不正确性之外,您还有一些错误 您引用了其中一个表agenda_hours和agenda_hours,这可能会导致错误。根据报告: 尽管在某些情况下数据库和表名不区分大小写 平台,不应使用 同一语句中的不同情况。以下声明 将不起作用,因为它将一个表同时引用为my_表和as 我的桌子: mysql>从my_table中选择*,其中my_table.col=1
此外,您的现场任命时间似乎有输入错误。可能是预约时间了。因此,您可能会遇到未知列错误。如果没有看到任何实际数据,我们将无法帮助您。请尝试将约会时间更改为约会时间?