![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 10.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Chyba normalnie wam zaspamuję te forum, ale mam jeszcze jedno konkretne pytanie: Jak zapytać się o losowy rekord?? Najprostszy przykład (acz nie zawsze wydajny obliczeniowo) to:
Ale co zrobić gdy chcę powiedzmy 10 rekordów, ale takich że 5 spełniają jakiś warunek, zaś 5 inny. W dodatku ogółem rekordy nie mogą się powtarzać (a są rekordy które spełniają oba te warunki) ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Zainteresuj się UNION. Wykonaj 2 zapytania (w każdym inne warunki) i połącz je właśnie UNION.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 10.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:06 |