Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Здравствуйте!
Есть две таблицы: albums и songs.
В таблице songs имеется поле album, которое по умолчанию принимает значение 0, а вообще соответствует albums.id.
Необходимо выбрать из albums такие записи, для которых не будет эквивалентно albums.id=songs.album.
Говоря языком множеств, выбрать красную зону:
Пробовал запросы вида:
SELECT B.id FROM B LEFT JOIN A ON (B.id=A.id) WHERE A.id IS NULL;
и
SELECT b.id FROM b WHERE b.id NOT IN (SELECT a.id FROM a)
но они не срабатывают, только подвешивают phpMyAdmin (используется для проверки запроса).
Буду крайне признателен за помощь!
Неактивен
Подвесить такие запросы phpMyAdmin не должны, думаю, они просто долго отрабатываются.
Сколько данных в таблицах? Для большей скорости выполнения таких запросов добавьте ключи на поля A.id и B.id.
Неактивен
Добавил индекс для songs.album (в таблице ~110k записей) и всё заработало!
Неактивен
Страниц: 1