MySQL LEFT JOIN 带有 WHERE 子句的查询

2023-12-13

希望有人可以提供帮助,因为我很难理解如何正确查询

我有一个 Member 表和一个 Member_Card 表。 Member_Card 有一个“Member”列,因此该卡与一个会员相关联。两个表都有一个 LastModifiedDate 列。会员可以没有卡、一张或多张卡。

我需要返回 LastModifiedDate >=sinceDate(给定日期)或其卡(如果有)LastModifiedDate>=sinceDate 的所有成员。

想象一下,sinceDate 是 2013-01-01 00:00:00。我想输出这样的东西:

[{
    "Id": "001O000000FsAs7IAF",
    "LastModifiedDate": 2013-01-01 00:00:00,
    "Member_Card": null
}, {
    "Id": "001O000000FrpIXIAZ",
    "LastModifiedDate": 2012-12-12 00:00:00,

    "Member_Card": [{
        "Id": "a00O0000002w8FGIAY",
        "Member": "001O000000FhDSoIAN",
        "LastModifiedDate": 2013-01-01 00:00:00

    }, {
        "Id": "a00O0000002uYMtIAM",
        "Member": "001O000000FhDSoIAN",
        "LastModifiedDate": 2012-12-12 00:00:00
    }]
}, {
    "Id": "001O000000FsAg7IAF",
    "LastModifiedDate": 2013-01-01 00:00:00,
    "Member_Card": [{
        "Id": "a00O0000002w8FFIAY",
        "Member": "001O000000FhDSoIAN",
        "LastModifiedDate": 2012-12-12 00:00:00
    }]
}]

第一个是具有匹配的 LastModifiedDate 且没有卡片的成员。第二个成员的 LastModifiedDate 不匹配,但他有 2 张关联卡,其中 1 张具有匹配的 LastModifiedDate。第三个是具有与卡片的 LastModifiedDate 相匹配的会员。

感谢SO,我得到了以下查询:

SELECT member.*,card.* from member inner join (
SELECT distinct member.id as  mid FROM Member 
INNER JOIN Member_Card 
    ON Member_Card.Member = Member.id 
and ( Member.LastModifiedDate >= sinceDate  
    OR Member_Card.LastModifiedDate >= sinceDate ) ) a on a.mid=member.id
inner join member_card card on card.member=a.mid

效果很好,但缺少会员没有任何关联卡的情况。

我尝试将一些 INNER JOIN 更改为 LEFT JOIN 但随后它忽略了日期比较:-(

你能帮我解决这个问题吗?


您想要将日期检查移至内部查询的位置。

尝试类似的方法:

SELECT member.*,card.* 
FROM member 
LEFT JOIN member_card card on card.member=member.id
WHERE member.id IN (
    SELECT DISTINCT m.id FROM Member m
        LEFT JOIN Member_Card mc ON (mc.Member = m.id)
        WHERE ( m.LastModifiedDate >= sinceDate  
        OR mc.LastModifiedDate >= sinceDate ) 
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL LEFT JOIN 带有 WHERE 子句的查询 的相关文章

  • 命令“python setup.py Egg_info”在 /tmp/pip-install-fs0wmmw4/mysqlclient/ 中失败,错误代码为 1

    当我在 Ubuntu 16 04 中输入以下命令时 pip install mysqlclient 我收到以下错误 enter code here Collecting mysqlclient Downloading https files
  • 解析器解析 SQL 查询并返回 Java 中的列名和相应的表名 [重复]

    这个问题在这里已经有答案了 可能的重复 Java 的 SQL 解析器库 https stackoverflow com questions 660609 sql parser library for java 我需要一个解析器 它应该以以下
  • 在 SQLAlchemy 中选择 NULL 值

    这是我的 PostgreSQL 表 test gt create table people name varchar primary key marriage status varchar test gt insert into peopl
  • 使用git在测试和生产环境之间同步数据库

    我正在尝试在 php mysql 应用程序的开发过程中实现 git 到目前为止 我已经设置了 git repos 并且我们正在使用本地计算机进行测试 并且我们成功地将其用于文件 但我真的不知道如何处理数据库 服务器上有一个 cron 脚本
  • 从 all_tab_columns 中选择,其中表有 > 0 行

    我需要在大型数据库中搜索与列名匹配的表 但该表必须有超过 0 行 顺便说一句 这是查询 SELECT FROM all tab columns WHERE column name LIKE ID SUPPORT 您可以使用单个查询来过滤名称
  • 强制连接第一个表中的所有行

    我有三张桌子 machines拿着自动售货机 products持有所有可能的产品 并且machines products这是两者的交集 给出了特定机器中每个产品线的库存数量 如果机器中没有库存产品 则第三个表中没有相应的行 DESCRIBE
  • 数据库设计 - 何时拆分表?

    有时创建一个单独的表会产生更多工作 我是否应该将其拆分 例如 在我的项目中 我有一张客户表 每个客户对每种产品都有自己的特殊价格 只有5种产品 未来不会计划更多产品 每个客户也有一周中公司向他交付产品的独特日子 当日期和产品价格是客户表中的
  • mysql查询获取根父级

    我的表中有以下数据categories id parent id title 1 0 A 2 1 B 3 2 C 4 3 D 5 4 E 现在我想获取类别 id 4 的根类别标题 parent id 0 即标题 A 的类别 id 1 如何在
  • 数组 (UUID[ ]) 会破坏 1NF 吗?

    我的问题是包含 UUID 数组的字段是否会破坏范式 http en wikipedia org wiki Database normalization 在包含数组之前位于 NF 中的表中 原表 CREATE TABLE Floor Floo
  • Postgres 服务器性能在达到一定数量的记录后急剧下降

    我正在使用游标从大型 postgres 表中检索记录 4亿条记录 使用子表对数据进行分区 我的游标定义为 select from parent table order by indexed column 同时使用 JDBC 和 psql 前
  • 如何使用Hibernate从Mysql获取最后一条记录?

    List
  • 使用 MySQL 作为元存储从 HIVE 查询元数据

    我正在寻找一种使用 HiveQL 命令查询 HIVE 数据元数据的方法 我配置了一个 MySQL 元存储 但需要通过 HIVE 命令查询元数据 因为然后我想通过 ODBC 连接到 HIVE 系统来访问数据 要从 Hive 查看它们 必须使用
  • 在重复密钥更新时插入...在哪里?

    我正在做一个INSERT ON DUPLICATE KEY UPDATE但我需要更新部分是有条件的 只有在某些额外条件发生变化时才进行更新 然而 WHERE不允许这样做UPDATE 有什么解决方法吗 我无法执行 INSERT UPDATE
  • 在 DataGrip JetBrains 中创建新数据库

    任何人都知道如何创建新数据库DataGrip https goo gl 99xqGb JetBrains 的数据库 IDE 找不到DataGrip 帮助页面 https goo gl pnFpGS In 数据夹2017 1 https bl
  • 什么时候数据库被称为嵌入式数据库?

    术语 嵌入式数据库 与 数据库 具有不同的含义吗 我见过的嵌入式数据库有两种定义 嵌入式数据库就像专门为 嵌入式 空间 移动设备等 设计的数据库系统一样 这意味着它们在紧张的环境中 内存 CPU 方面 可以合理地执行 嵌入式数据库就像不需要
  • 如何在 Ubuntu 22.04 LTS 上安装 MySQL 5.7?

    我工作的公司使用较旧的堆栈 我需要在 Ubuntu 22 04 LTS 上安装 MySQL 5 7 才能在本地处理一些项目 有谁知道该怎么做 除了在 Ubuntu 20 04 或更低版本上安装之外 我找不到任何东西 下载 wget http
  • MySQL标签中如何存储标签,总共一个字段还是每个标签一个字段?

    我正在开发一个接近 stackoverflow com 的产品 发帖者需要为其问题或任务输入标签 如何将这些标签存储在数据库中 是总共一个字段 列 还是一个标签一个字段 列 我觉得多对多 http en wikipedia org wiki
  • 如何更改 PostgreSQL 表中列的数据类型?

    在 PostgreSQL 交互式终端中输入以下命令会导致错误 ALTER TABLE tbl name ALTER COLUMN col name varchar 11 更改列的数据类型的正确命令是什么 请参阅此处的文档 http www
  • PHP 中的依赖注入

    我一直在研究依赖注入 我是在关注某件事还是完全没有关注 代码是好是坏 依赖注入与否 下面的代码是CMS系统的基础 现在有一个名为 page details 的表 其中存储了所有网页 目录 文件结构 htaccess index php cl
  • django在服务器上同步数据库时出错

    我有一个完整运行的区域设置 django 应用程序 但我在迁移到 site5 服务器时遇到了麻烦 当我启动 django 时syncdb命令 我所有模型的表都已创建 但是然后 我猜当它创建关系表时 我收到以下错误 mysql excepti

随机推荐

  • Rust 对临时值的引用不会报告错误

    我有以下代码 derive Debug pub enum List lt a gt Nil Cons i32 a List lt a gt let x Cons 1 Cons 2 Nil println x 效果很好 我不明白为什么这段代码
  • mysql concat 有没有性能更好的替代方案?

    我正在尝试对两个表应用联接 需要在其上应用联接的列的值不相同 因为我需要使用 concat 但问题是它需要很长时间才能运行 所以这是一个例子 我有两张桌子 表 MasterEmployee 字段 varchar 20 id varchar
  • 根据模板操作,掩模如何影响模板值?

    OpenGL 参考 pdf 中的文档 OpenGL 3 3 和 4 5 规范 对于应用遮罩时存储的模板值会发生什么情况不太清楚 例如如果我有以下掩码 glStencilMask 0x06 并存储在模板缓冲区中已经有这个值 0x06 如果模板
  • 解析 PL/SQL 代码以检查语法和语义错误

    请考虑以下场景 我有一个文本区域 and a Button on UI 用户将在中输入 PL SQL 块文本区域 当用户按下Button 我想检查该块中的语法和语义错误 而不需要执行 it 我真的很想要一个不需要再安装任何东西的解决方案 环
  • Android 中如何让按钮闪烁?

    如果用户 在我的测验游戏中 选择错误答案 则具有正确答案的按钮应呈绿色闪烁 到目前为止我是这样做的 if answerTrue for int i 0 i lt 2000 i i 250 handler postDelayed rbl bl
  • 在java中,一天的开始时间是几点?

    一天的开始时间是几点 比如 01 01 2010 是 00 00 00 000 吗 或者那是午夜 edit 这可能是一个愚蠢的问题 但我很困惑 因为我使用了 Calendar set Calendar HOUR 0 但这给了我 12 00
  • 如何在 segue 展开之前执行条件检查

    VC1继续VC3它有一个键盘和预先确定的可接受输入标签的最低数字 用户可以在此字符串的末尾添加一个数字或删除一个数字 当按下 Accept 键时 string toInt 被传递给VC1Segue 是通过 IBAction func unw
  • hibernate:三元关联映射

    技术说明 Hibernate注释 3 4 0 GA 爪哇1 5 table 用户角色分支columns 用户 ID 角色 ID 分支 ID 对于公司的不同分支机构 用户被分配不同的角色 现在我有一个 java pojo 类 public c
  • 如何向 Hive(0.13.1) 表插入数据?

    我使用的是 Hive 版本 0 13 1 尝试将数据插入现有表时 使用以下查询时出现错误 CREATE TABLE table1 order num int payment type varchar 20 category varchar
  • 过渡不透明度和可见性

    我有一个元素是visibility hidden直到悬停在上方 并在不透明度上进行过渡以实现良好的淡入淡出 问题是淡入淡出只能以一种方式工作 因为当元素立即变成visibility hidden它隐藏了不透明度过渡 我该如何解决这个问题 编
  • 命名查询中的 Hibernate 错误

    我正在尝试从当前日期位于任何给定月份的第一天和最后一天之间的表中提取信息 我收到运行时错误 命名查询中的错误 Department byDate 我向您提供了我认为可能导致问题的代码 如果需要任何其他代码 请在评论中告诉我 我的命名查询如下
  • 在WPF中动态添加文本框

    我正在动态创建一个文本框 我的网格中有 2 列 如果其他文本框值 茶 我想向该行添加新文本框 我想创建新的文本框以更改相应行的文本框值 我无法使用标签来获取此处选定的行 因为我已经出于某种目的使用了 Tag 我对Tag不太了解 无论如何 如
  • 无法在 javascript onreadystatechange 中读取自定义 http 标头?

    当我尝试读取自定义 http headers i am hetting null 时 泽西岛身份验证资源 Path redirect public class RedirectDemo POST Consumes MediaType APP
  • 从 jsdom 迁移到 phantomJS ? (基本 DOM 创建)

    M Bostock 指出 nodejs 的 jsdom 对 svg 的支持不完整 而且 对我来说至关重要的是 不支持getBBox 另外 他建议改用nodejs的PhantomJS 我检查了一下 但这种方法对我来说是新的 我的nodejs
  • C# 中运算符方法的方法名称

    有谁有 C CLR 为运算符提供的名称的详尽列表吗 也许是我睡眠不足 但我似乎无法在谷歌上找到它 op 加法 op 减法 此外 这些在其他文化中是否有可能有所不同 我正在尝试创建一个可以添加 减去两个对象等的类 并且我已经完成了所有原语 我
  • mod_rewrite 似乎忽略了 [L] 标志

    我正在尝试使用 L 标记在RewriteRule 但似乎不起作用 如果您调用该页面 我希望如此 www domain com admin 它会将您重定向到 www domain com backend php 否则 如果您调用任何其他页面
  • 判断复选框是否被选中 php $_GET

    我只想让 php 确定是否选中复选框 但我遇到了获得正确返回值的问题 请帮助 我的html代码
  • Codeigniter flashdata 无法在 Internet Explorer 和 google chrome 中工作

    Codeigniter flashdata 无法在 Internet Explorer 和 Chrome 中运行 但可以在 Firefox 中运行 可能是什么问题 在我的控制器中 this gt session gt set flashda
  • 将 Jquery 数据表与 AngularJs 结合使用

    我正在尝试使用jquery 数据表插件在我的 angularjs 项目中 但我的问题是它支持吗延迟加载对 AngularJS 有价值吗 我想要 因为我有很多行 如何使用数据表管道与 AngularJS 一起 分页有一个解决方案here 如何
  • MySQL LEFT JOIN 带有 WHERE 子句的查询

    希望有人可以提供帮助 因为我很难理解如何正确查询 我有一个 Member 表和一个 Member Card 表 Member Card 有一个 Member 列 因此该卡与一个会员相关联 两个表都有一个 LastModifiedDate 列