Выбрать строки в первой таблице, которые отсутствуют во второй

Рейтинг: 0Ответов: 1Опубликовано: 05.03.2015

Всем доброго дня. Ребята, ищу совета.

Есть две таблицы aaa=350 строк и bbb=2000 строк. Делаю выборку:

SELECT * FROM aaa
LEFT JOIN bbb
ON aaa.id=bbb.ids

Запрос занял 0.0657 сек.
Моя задача выбрать строки в aaa, которых нет в bbb.

Добавляю следующее WHERE bbb.text IS NULL:

SELECT * FROM aaa
LEFT JOIN bbb
ON aaa.id=bbb.ids
WHERE bbb.text IS NULL

В результате Запрос занял 0.8340 сек. Как побороть заразу? Уже перелопатил всё.

Ответы

▲ 1

Поменять в выборке условие на:

WHERE bbb.ids IS NULL

Нужно, чтобы выборка производилась по индексированному полю либо ключу. В данном же случае поле text, видимо, не проиндексировано, что и вызывает долгую работу запроса. Как вариант, можно повесить индекс на text, если это поле участвует в условиях каких-то других выборок.