Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 基于多个表中的条目排除SQL查询的结果_Mysql_Sql - Fatal编程技术网

Mysql 基于多个表中的条目排除SQL查询的结果

Mysql 基于多个表中的条目排除SQL查询的结果,mysql,sql,Mysql,Sql,我的数据库中有两个如下所示的表 CREATE TABLE IF NOT EXISTS `lab_closure_states` ( state_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, lab_id INT UNSIGNED NOT NULL, period_id INT UNSIGNED NOT NULL, date DATE NOT NULL, state BOOL NOT NULL ) ENGINE = MYISAM DE

我的数据库中有两个如下所示的表

CREATE TABLE IF NOT EXISTS `lab_closure_states`
(
state_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
lab_id INT UNSIGNED NOT NULL,
period_id INT UNSIGNED NOT NULL,
date DATE NOT NULL,
state BOOL NOT NULL
)  ENGINE = MYISAM 
DEFAULT CHARACTER SET = utf8 
COLLATE = utf8_bin;

CREATE TABLE IF NOT EXISTS `lab_appointments`
(
appointment_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
created DATETIME NOT NULL,
user_id INT UNSIGNED NOT NULL,
lab_id INT UNSIGNED NOT NULL,
period_id INT UNSIGNED NOT NULL,
date DATE NOT NULL,
class_size INT UNSIGNED NOT NULL,
comment TEXT NOT NULL,
lab_is_closed BOOL NOT NULL
) ENGINE = MYISAM 
DEFAULT CHARACTER SET = utf8 
COLLATE = utf8_bin;
在状态不为FALSE的情况下,是否可以为给定用户选择所有约会?我的复杂之处在于,对于存在的每个
labu预约
,我可能不一定要有
labu closure\u状态
条目。
谢谢

这不是对你的问题文本的严格回答,而是回答问题标题:

SELECT *
FROM lab_appointments root
LEFT OUTER JOIN lab_closure_states satellite 
    ON  satellite.lab_id = root.lab_id
    AND satellite.state = 0
WHERE 
    satellite.state_id IS NULL

上面显示的方法让您有机会在查询中链接多个附属表,并通过简单地将
IS NULL
IS NOT NULL
放在
WHERE
语句中来构建复杂的筛选标准。

您会跳过没有lab\u closure\u state条目的条目吗?