Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> czy można tworzyc query sql do zbioru wyników ?
bartu$
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 27.06.2004

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


Witajcie

Nasunęła mi się myśl, że dobrze by było aby w pewnych sytuacjach mysql umożliwiał utworzenie zapytania do zbioru wyników powstałego na skutek zapytania wcześniejszego.

Chodzi mi o to ze wskutek skomplikowanego zapytania SQL, w którym sklejałem JOINAMI wiele dużych tabel otrzymałem niewielki zbiór wyników (parę rekordów).

Kolejne zapytanie jakie chciałbym wykonać to to samo co porzednio tylko nałożony jeszcze jeden INNER JOIN - właściwie mógłbym żądane informacje wyciągnąć zapytaniem do tamtego zbioru wyników.

(IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)

Czy tak się da (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

1) Bo inne rozwiązanie widzę tylko - zmusić system do ponownego sklejania tych samych tabel jeszcze raz (no trudno)

2) wykonać tylko to bogatsze zapytanie z dodatkowym INNER JOINEM i wrzucić wynik zapytania do tabeli i operować już na nim z poziomu php. No ale nie jest to wygodne, i wiąże się z wielokrotnym przemieszczaniem wskaźnika do zbioru wyników (w moim rozwiązaniu nie mogę zrobić tylko 1 pętli)


pozdrawiam,
- bart

Ten post edytował bartu$ 17.07.2005, 19:15:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
crash
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Cytat(bartu$ @ 2005-07-17 19:12:46)
Nasunęła mi się myśl, że dobrze by było aby w pewnych sytuacjach mysql umożliwiał utworzenie zapytania do zbioru wyników powstałego na skutek zapytania wcześniejszego.

A podzapytania w MySQL 4.1.x nie starczą?
Go to the top of the page
+Quote Post
SongoQ
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Po co tam kombinowac, mozesz uzyc podzapytan, gdzie bedziesz mial cos w tym stylu:

  1. SELECT *
  2. FROM (tutaj zbior z zapytania)
Go to the top of the page
+Quote Post
bartu$
post
Post #4





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 27.06.2004

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


NIE.

Tu nie chodzi o podzapytania.


Wyniki obu zapytan potrzebuje przetwarzac w kodzie php i wyswietlac na ekranie.
Czyli musze miec do nich uchwyty. Zagniezdzone to nie to, o co mi chodzi.

Te 2 zapytania niewiele sie roznia. A sa wynikiem sklejania wielu duzych tabel i pomyslalem czyby tego nie zoptymalizowac.

Wyobrazcie sobie, ze mam zbior rekordow - wazna dla mnie odpowiedz na jakies QUERY i ten zbior rekordow zawiera kolumne ktora ma wartosci ktore wlasciwie ze slowem DISTINCT sa odpowiedzia na nastepne moje pytanie SQL. Wiec po co 2x dochodzic do tego zbioru wyniku. Szkoda cennych sekund.

Czy nie da sie jakos zadac pytania do uchwytu zbioru wyników w bazie.
Przeciez zbior wynikow to tez jakas tabela.

- bart

Ten post edytował bartu$ 17.07.2005, 21:37:04
Go to the top of the page
+Quote Post
orson
post
Post #5





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

hmm ... tabela tymczasowa (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) insert into <Tabela_tymczasowa> ... potem na tej tymczasowej robisz disctinct i done ...

pozdrawiam
Go to the top of the page
+Quote Post
bartu$
post
Post #6





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 27.06.2004

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


Właśnie potrzebne by było coś w stylu tabeli tymczasowej.

Ale:

1) skrypty bede musialy pracowac na kontach mysql z uprawnieniami do create table - zupelnie niepotrzebnie
2) jesli powstanie create table to gdy inny uztkownik wywola to samo zdarzenie to musialaby nazwa tabeli zawierac unikalny identyfikator np. sesji
3) jak ktos albo cos przerwie skrypt, to w bazie powstanie mi masa zbednych tabel.

Gdyby tabele moglyby byc wirtualne, byloby fajnie. Inaczej to rozwiazanie odpada.

ps. przeciez czesto zdarza sie sytuacja ze chcialoby sie zrobic nastepne pytanie b.podobne do poprzedniego i wlasciwie jego zbior wynikow moglby wystarczyc jako tabela na ktorej to drugie zapytanie moznaby zrobic.

Po co marnowac czas na od nowa łączenie tabel INNER JOINAMI zeby w koncu klauzula WHERE wyciagnac ten maly zbior ktory juz mielismy wyzej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
SongoQ
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Jak sama nazwa wskazuje tabela tymczasowa to tabela tymczasowa, trwa jedna sesje.

Nie widze sensu takiego kombinowania z zwracaniem zbiorow i zapytaniem do nich? Musialbys pobierac, przekazywac dane? Po co, wlasnie to bedzie zajmowalo duzo czasu. Wszystko da sie zrobic podzapytaniami. Bo naprawde odwolujesz sie wtedy do konkretnego zbioru. Podaj konkretny przyklad co masz i co chesz osiagnac.
Go to the top of the page
+Quote Post
popbart
post
Post #8





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


W PostgreSQL są takie fajne kursory które może twój problem by rozwiązały.
Go to the top of the page
+Quote Post
SongoQ
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
W PostgreSQL są takie fajne kursory które może twój problem by rozwiązały.


Nie tylko kursory, w ogole dla mnie PG to jest cos tak wspanialego ze MySQL dopiero to osiagnie za 6 moze 5 lat.

@bartu$ Mozesz opisac szczegolowo problem, moze komus uda sie wpasc na jakis optymalny pomysl.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 21:36