示例架构 http://sqlfiddle.com/#!9/01c068/2
对于任何插入,author.created_at
与 books.created_at
相同,author.previous_created_at
与 books 表中第二高的创建日期相同。
找出最新插入中丢失的记录的最佳方法是什么?
预期结果是具有 books.id = 4
最佳答案
我对你的问题并不完全清楚,但我认为下面的代码就是你正在寻找的。或者至少它会有所帮助。
但是我想指出,“作者”表不包含有关作者的任何数据。它也无法区分不同的作者。因此,您可能想要重新设计项目的某些元素。
这是您要找的吗?如果没有,您能否提供更多解释和一些示例?
select B.id as bookID
, B.author_id
, B.created_at
, sub.previous_created_at
from books as B
left join (
select id
, author_id
, created_at as previous_created_at
from books
) as sub
on sub.id + 1 = B.id
and sub.author_id = B.author_id
此查询返回所有书籍及其作者和created_at,并在最后一列中返回同一作者的前一本书的created_at。
关于mysql - 如何获取mysql中缺失的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53719286/