我正在学习SQL,我想知道我是否可以搜索特定用户的日期.

这是我的数据库.

name password email comment regdate roll
guest1 guest1 guest1@email.tld Hi I'm guest1 2021-02-03 23:23:43 guest
guest2 guest2 guest2@email.tld Hi I'm guest2 2021-02-04 08:23:43 guest
admin admin admin@email.tld Hi I'm admin 2021-02-10 10:23:43 admin

我已经知道了,我可以搜索到

SELECT *
FROM `objects`
WHERE (date_field BETWEEN '2021-02-03 23:23:43' AND '2021-02-10 10:23:43')

问题是,我可以搜索guest1.regdate而不是实际日期吗? 就像这样

SELECT *
FROM `objects`
WHERE (date_field BETWEEN `guest1.regdate` AND `admin.regdate`)

我试着搜索它,但我不知道我该如何搜索,我该如何将其命名为(guest1.regdate).特定行的特定列?这很奇怪.

推荐答案

假设您的用户表名为appusers,并且name字段上有一个唯一键(如果数据不是唯一的,它可能会失败,在这种情况下,在每个子查询的末尾添加 LIMIT 0,1可以修复它),这应该是可行的:

SELECT
  *
FROM
  `objects`
WHERE 
  date_field BETWEEN 
    ( select regdate from appusers where name = 'guest1') 
    AND 
    ( select regdate from appusers where name = 'admin')

Mysql相关问答推荐

如果WHERE语句包含所有列,唯一键顺序是否重要?

从 NextJS/Prisma 添加用户 ID (FK) 到 MySQL 表

查找表中的唯一记录

MySQL - 事务绑定多个存储过程调用和回滚的简单方法?

如何解码存储在带有type*:前缀的base64中的数据?

MySQL 中的 LATERAL 语法 - 是否只是说左表首先执行以便下一个可以引用它?

基于 3 个条件 Select 3 行的最佳 MySQL 索引和查询

是否可以在一个查询中将字符串附加到许多匹配的行

在 MySQL 中使用三个表进行计算

mysql 5.5;可以从记录中排除表吗?

是否可以从 .SQL 文件中计算表中的行数?

MariaDB 下的慢速更新、删除和插入查询

MySQL 工作台与 phpMyAdmin

终止空闲的mysql连接

从终端访问 MAMP 的 MySQL

如何在mysql中连接整数(整数和整数)和varchar(nvarchar和varchar)等数据类型?

如何用一系列日期填充表格?

如何计算表格的列数

mysql错误'TYPE = MyISAM'

来自 MySQL 中多个表的 COUNT(*)