Cytat(phpion @ 27.09.2010, 08:02:10 )

Zainteresuj się UNION. Wykonaj 2 zapytania (w każdym inne warunki) i połącz je właśnie UNION.
No ale nie całkiem o to mi chodzi... Chyba że można te UNION robić jakiś "dynamicznie" wówczas może byłoby to przydane.
powiedzmy mam tabele:
artykul (id, nazwa, tresc);
kategoria (id, nazwa);
przypisanie_kategorii (id_artykul, id_kategoria); //obie kolumny to klucze obce
grupa_kategorii (id, nazwa);
przypisanie_grup_kategodii(id_grupy_kategorii, id_kategorii)); //obie kolumny to klucze obce
reasumując:
relacja
artykul <=> kategoria jest relacją
"wielu do wielu"relacja
kategoria <=> grupa_kategorii jest także relacją
"wielu do wielu"zaś moje pytanie dotyczy sytuacji w której mając
daną grupe_kategorii chcę wylosować np.
10 artykul'ów, ale takich aby pochodziły w równym stopniu z każdej
kategorii do której należy
artykul, jak i
grupa_kategorii.
Problem jest zawiły gdyż struktura przynależności nie ma on charakteru "drzewa" zaś
artykul'y mogą się w pewnym sensie "duplikować" (w najprostszym przypadku: jeden
akrykul należy do 2
kategorii które to z kolei wzajemnie należą do jednej
grupy_kategorii).
Czy da się rozwiązać ten problem jednym złożonym zapytaniem SELECT


Czy też kombinowanie z funkcjami czy czymś podobnym??