【发布时间】:2021-09-14 10:27:44
【问题描述】:
我有两张桌子:processes 和 notes。每个注释都链接到一个过程。一个进程有几个注释(一对多关系)。笔记也有创建日期。
我想选择最后一个注释包含特定文本(例如“某些内容”)的每个进程,但前提是此注释是该进程的最后一个创建的注释。
例如:
进程表:
id | name
----------
42 | 'foo'
笔记表:
content | creation_date | process_id
-------------------------------------------
'note1' | '09/13' | 42
'note1' | '09/14' | 42
'some_content'| '09/15' | 42
notes 中的 process_id 字段是外键。在此示例中,我的查询应选择“foo”进程。
如果添加新注释,notes 表格将变为如下所示:
content | creation_date | process_id
-------------------------------------------
'note1' | '09/13' | 42
'note1' | '09/14' | 42
'some_content'| '09/15' | 42
'note4' | '09/16' | 42
在这种情况下,不应选择“foo”进程,因为最后一个注释内容不再是“some_content”。
是否有可能在单个查询中完成这样的事情?
我正在使用 MySQL。
【问题讨论】:
-
您希望联接对注释 1 和某些内容起作用,而不是对注释 4 起作用?为什么会这样?
-
这里的模式是什么,因为 some_content 也与您希望加入工作的注释 1 不同?
-
请edit您的问题向我们展示您的两个表的 SHOW CREATE TABLE 的输出。而且,2022 年 1 月 1 日应该发生什么?
-
你在使用 MySQL > 8 吗?
标签: mysql sql inner-join