Как получить недостающие строки в MySQL - PullRequest
0 голосов
/ 11 декабря 2018

Пример схемы http://sqlfiddle.com/#!9/01c068/2 Для любой вставки author.created_at соответствует books.created_at, а author.previous_created_at соответствует второй по величине дате создания в таблице книг.Каков наилучший способ найти пропущенную запись в последней вставке?Ожидаемый результат - строки, имеющие books.id = 4

1 Ответ

0 голосов
/ 11 декабря 2018

Ваш вопрос мне не совсем понятен, но я думаю, что код ниже - это то, что вы ищете.Или, по крайней мере, это поможет.

Я хотел бы отметить, однако, что таблица «автор» не содержит никаких данных об авторах.Это также не может различать разных авторов.Таким образом, вы можете изменить некоторые элементы вашего проекта.

Это то, что вы ищете?А если нет, не могли бы вы дать немного больше объяснений и несколько примеров?

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    

Этот запрос возвращает все книги с его автором и create_at, а в последнем столбце - made_at предыдущей книги того же автора..

...