mysql - 如何获取mysql中缺失的行

标签 mysql sql doctrine

示例架构 http://sqlfiddle.com/#!9/01c068/2 对于任何插入,author.created_atbooks.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/

相关文章:

mysql - SQL 仅选择列上具有最大值的行

mysql - SQL 用一条语句更新键/值列表?

c# - 返回网络服务中的最后一行

symfony - 尝试执行查询时路径表达式无效

mongodb - Doctrine ODM 地理空间查询的正确查询是什么?

php - 使用 file_get_contents 将文件(图像)添加到数据库?

mysql - Laravel 外键约束迁移错误

android - 用户输入的撇号使 android 应用程序崩溃(与 SQL 相关)

php - SQL语句给我一个错误,虽然看起来很好

testing - Symfony2测试数据库生产环境