M SQL получить первые 100 строк непересекающихся - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть 2 таблицы в M SQL

Первая называется tbl_file и имеет следующие свойства:

  • id
  • hash_id
  • описание
  • MIME-тип
  • дата создания
  • et c ..

второй называется tbl_sys_filecontent и имеет только:

  • id
  • content (base64)

Предполагается, что эти два таблицы должны иметь одинаковый размер строки. ( га sh -id из tbl_file совпадает с id in tbl_sys_filecontent

Однако что-то пошло не так, и теперь, если мы выполним:

select count(*) from tbl_sys_filecontent;

Мы получим около 1 000 000 строк

И мы должны получить то же самое Количество строк после выполнения запроса:

select count(*) from tbl_file as f
JOIN tbl_sys_filecontent as sf on f.hash_id = sf.id;

Но мы получили только примерно 100 000 результатов

Давайте назовем первый набор запросов A и второй B

Вопрос в том, как получить первые 100 строк, которые равны AB (поэтому хэши не равны?)

Спасибо заранее.

1 Ответ

1 голос
/ 11 февраля 2020

С не существует

select *
from tbl_file as f
where not exists (select 'x' from tbl_sys_filecontent  as sf where f.hash_id = sf.id);

С не входит

select *
from tbl_file as f
where f.hash_id not in (select 'x' from tbl_sys_filecontent  as sf);

Однако не существует является в пользу не в : { ссылка }

с левым соединением

select f.* from tbl_file as f
    LEFT JOIN tbl_sys_filecontent as sf on f.hash_id = sf.id
where sf.id is null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...