MySQL "AND"语句问题

标签 mysql datetime

我有 2 个表(下面的示例)

aTable
-------------------------------------------------
name    |   datein                  |   dateout
test    |   2016-10-10 00:00:00     |   null --->> This one
test2   |   2016-10-12 00:00:00     |   null
-------------------------------------------------

bTable
------------------------------------------------------------
name    |   datein                  |   dateout
test    |   2016-05-05 00:00:00     |   2016-06-06 00:00:00 
test    |   2016-10-10 00:00:00     |   null --->> This one
test2   |   2016-10-12 00:00:00     |   2016-10-13 00:00:00
------------------------------------------------------------

我想提取namedatein equaldateout 都为 的数据空

我正在使用下面的查询,但得到的响应是空的。

SELECT name,datein 
FROM aTable 
WHERE (name = 'test' AND dateout IS NULL) AND 
      (SELECT name FROM bTable WHERE name = 'test' AND dateout IS NULL)

我有什么遗漏的地方吗?

最佳答案

您需要将 EXISTS 添加到您的查询中:

SELECT t1.name, t1.datein 
FROM aTable AS t1
WHERE (t1.name = 'test' AND t1.dateout IS NULL) AND 
      EXISTS(SELECT name 
             FROM bTable AS t2
             WHERE t2.name = 'test' AND 
                   t2.datein = t1.datein AND
                   t2.dateout IS NULL)

或者,不为 name 字段提供特定值:

SELECT t1.name, t1.datein 
FROM aTable AS t1
WHERE t1.dateout IS NULL AND 
      EXISTS(SELECT name 
             FROM bTable AS t2
             WHERE t2.name = t1.name AND 
                   t2.datein = t1.datein AND
                   t2.dateout IS NULL)

关于MySQL "AND"语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40343291/

相关文章:

mysql - InnoDB 行级锁定性能 - 多少行?

mysql - 存储排序顺序/优先级的最佳方式?

PHP mysql在创建上传图片到blob未定义索引_FILES时出现问题

ruby-on-rails - Ruby 日期时间解析

sql-server - 在 SQL Server 中存储 DateTime 以在大型表中提供最大搜索速度的最佳方法是什么?

mysql - 使用 rpm 安装旧版本的 mysql

MySQL - datediff days (保留几位小数)

c# - 在 LINQ 中比较过去的日期

r - 计算动态日期时间范围内每组的观察值

datetime - 对 Date 对象使用 Groovy 比较运算符