Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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连接影响结果集_Mysql_Sql_Innodb - Fatal编程技术网

阻止MySQL连接影响结果集

阻止MySQL连接影响结果集,mysql,sql,innodb,Mysql,Sql,Innodb,我有一个连接的问题,我想这将是一个简单的解决办法(我想我有一个大脑放屁) 以下是我当前的工作查询: SELECT ADDTIME(journey.departure, notrelatedtoquestion) AS departure FROM journey GROUP BY journey.id ORDER BY departure 以下是我想工作但无法工作的查询: SELECT ADDTIME(journey.departure, notrelatedtoquestion) AS de

我有一个连接的问题,我想这将是一个简单的解决办法(我想我有一个大脑放屁)

以下是我当前的工作查询:

SELECT ADDTIME(journey.departure, notrelatedtoquestion) AS departure
FROM journey
GROUP BY journey.id
ORDER BY departure
以下是我想工作但无法工作的查询:

SELECT ADDTIME(journey.departure, notrelatedtoquestion) AS departure
FROM journey
JOIN journey_non_operation ON journey_non_operation.journey = journey.code
WHERE NOW() NOT BETWEEN journey_non_operation.date_start AND journey_non_operation.date_end
GROUP BY journey.id
ORDER BY departure
好的,它正在工作,但问题是,由于新加入的
travely\u non\u操作
表的内容,它更改了结果集

我想要达到的目标很简单。我只想筛选出
旅程非\u操作
表中具有今天日期的旅程。但是,由于每次行程都有许多非运行日期,因此它正在改变结果集

以下是第一次和第二次查询的结果:

------

如何停止
旅程\u非\u操作
连接以避免影响结果集,但使其不会选择id介于非操作日期之间的旅程

行程非操作的表结构:

id
-
旅程id
-
开始日期
-
结束日期


谢谢

您可以使用
不在
操作符代替
连接

SELECT   ADDTIME(journey.departure, notrelatedtoquestion) AS departure
FROM     journey
WHERE    journey.code NOT IN (SELECT journey
                              FROM   journey_non_operation
                              WHERE  NOW() NOT BETWEEN date_start AND 
                                                       date_end)
GROUP BY journey.id
ORDER BY departure

如果使用LEFT JOIN并将BETWEEN子句作为ON的一部分,则每个匹配都意味着不应显示旅程。因此,只需在左联接后显示不匹配记录的行

SELECT journey.id, ADDTIME(journey.departure, notrelatedtoquestion) AS departure
FROM journey
LEFT JOIN journey_non_operation ON journey_non_operation.journey = journey.code 
     AND  NOW()  BETWEEN journey_non_operation.date_start AND journey_non_operation.date_end
WHERE journey_non_operation.id is null
GROUP BY journey.id
ORDER BY departure

所以,可能有一些旅程的id与旅程\u非\u操作中的任何行都不匹配,对吗?