Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> losowe rekordy, ale z podziałem na odgórnie sprecyzowanie pogrupowanie
dfs
post
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:
  1. SELECT * FROM tabela ORDER BY random() LIMIT 10


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)questionmark.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
phpion
post
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.
Go to the top of the page
+Quote Post
dfs
post
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 10.02.2009

Ostrzeżenie: (0%)
-----


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 exclamation.gifquestionmark.gif Czy też kombinowanie z funkcjami czy czymś podobnym??
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 17:06