Witam,
mam trzy tabele:
produkt - [id_produkt].[nazwa_produktu]
kategoria - [id_kategoria].[nazwa_kategorii]
produkt_has_kategoria - [id_produkt_has_kategoria].[produkt_id_produkt]
w realcji n:m (każdy produkt może należeć do wielu kategorii)
Usuwając kategorię produktów chcę usunąć produkty, które należały tylko do tej kategorii tak, aby w tabeli "produkt" nie pozostały rekordy osierocone.
Chciałbym zrobić to w jednym zapytaniu korzystając z podzapytań.
To zapytanie:
DELETE FROM produkt WHERE id_produkt IN (
SELECT DISTINCT produkt_id_produkt
FROM produkt_has_kategoria
WHERE kategoria_id_kategoria = id_kategoria
)
AND id_produkt NOT
IN (
SELECT produkt_id_produkt, count( * ) AS ile
FROM produkt_has_kategoria
GROUP BY produkt_id_produkt
HAVING ile >=2
)
generuje błąd:
#1241 - Operand should contain 1 column(s)
Proszę o pomoc w poprawnym sformułowaniu tego zapytania.
Korzystam z MySQL 4.1.9
pozdrawiam