Как найти записи в одной таблице, которым нет соответствия в другой

252
26 ноября 2016, 20:16

Есть две большие таблицы в MySQL. Теоретически между ними связь один-ко-многим. Практически — связь на уровне базы данных не задана, поэтому нет каскадного изменения/удаления данных во второй таблице при работе с первой таблицей. Итого: после удаления записей из первой таблицы во второй таблице остались мусорные данные.

Как найти подобные мусорные записи, если в обеих таблицах по несколько миллионов записей?

Вариант для небольших данных, в данном случае — не очень:

    SELECT bar.id
      FROM bar
 LEFT JOIN foo ON foo.id = bar.foo_id
     WHERE foo.id IS NULL; 

Не обязательно ограничиваться только силами MySQL.

READ ALSO
Работа с датами в PHP

Работа с датами в PHP

У меня такая проблема, необходимо сравнить дату с датой из MySQL datetime и текущей датойКак реализовать – не знаю

257
Ошибка импорта базы данных с более новой версии MySQL

Ошибка импорта базы данных с более новой версии MySQL

Возникла проблема при импорте с MySQL 57

340
Как через php pdo отправлять пачкой запросы mysql?

Как через php pdo отправлять пачкой запросы mysql?

Работаем через PDO c mysql, это очень важноДелаю как тут http://php

285
Не запускается mysql

Не запускается mysql

ОС debian + MariaDbВыдает

287