R00miss
Guest
выбор данных там где их нет
Привет!
такая ситуация - есть 3 таблицы:
poem
--------
poem_id | ... | ...
category
------------
category_id | ... | ...
poem_category
---------------------
poem_id | category_id
так что если poem лежит в какой то категории, оно идет в poem_category ... думаю это понятная структура...
итак вопрос - как лучше выбрать все из poem для которых нет данных в poem_category (т.е. категория не установлена) ?
сейчас делаю так:
----------------------------------
SELECT p.poem_id
FROM poem p
LEFT JOIN poem_category pc ON (pc.poem_id = p.poem_id)
GROUP BY p.poem_id
HAVING COUNT(pc.poem_id) < 1
-------------------------------------
пока база не большая (3000+ записей в poem), но соответственно в poem_category больше записей.. поэтому скрипту нада пройти через все записи в poem_category чтобы узнать чего там нет... долго это занимает ... как сделать?
Привет!
такая ситуация - есть 3 таблицы:
poem
--------
poem_id | ... | ...
category
------------
category_id | ... | ...
poem_category
---------------------
poem_id | category_id
так что если poem лежит в какой то категории, оно идет в poem_category ... думаю это понятная структура...
итак вопрос - как лучше выбрать все из poem для которых нет данных в poem_category (т.е. категория не установлена) ?
сейчас делаю так:
----------------------------------
SELECT p.poem_id
FROM poem p
LEFT JOIN poem_category pc ON (pc.poem_id = p.poem_id)
GROUP BY p.poem_id
HAVING COUNT(pc.poem_id) < 1
-------------------------------------
пока база не большая (3000+ записей в poem), но соответственно в poem_category больше записей.. поэтому скрипту нада пройти через все записи в poem_category чтобы узнать чего там нет... долго это занимает ... как сделать?