Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][VIEW] zastąpienie złożonego zapytania widokiem ;)
Forum PHP.pl > Forum > Bazy danych
zegarek84
wiem, są święta, ale to tylko mi potrzebne - w zasadzie nie potrzebne, przez % zamiast myśleć samemu wolałem w końcu tu napisać a jak odpowiedzi nie będzie to też bardzo nie jest potrzebna - utwierdźcie mnie w przekonaniu, że tego nie da się zrobić - w zasadzie nie używam widoków i chyba nie będę używał chyba, że tutaj jakiegoś tricku się nauczę winksmiley.jpg

mam sobie zapytanie niby zależne od zmiennych, ok można pominąć te zmienną o ile będzie widok tej samej struktury i dopiero jego odpytać, w niektórych rozwiązaniach baz widziałem też przypisanie wartości do zmiennej żeby ją przekazać dalej into zmienna - to rozwiązanie tutaj odpada - proszę jeśli się da jak najbardziej uniwersalne rozwiązanie winksmiley.jpg do tego zapytania:

  1. $select=$this -> PDO -> prepare('SELECT nc.*, np.id_p, np.title_p, nn.id_n, nn.title_n, (c.news_count_all - nn.where_id_asc) AS where_id, c.news_count_all
  2.    FROM (SELECT * FROM `news` WHERE `id`=:id LIMIT 1) as nc
  3.    LEFT JOIN (SELECT :id AS id_n_join, `id` as id_n, `title` as title_n, COUNT(`id`) AS where_id_asc FROM `news` WHERE `id`<:id ORDER BY `id` DESC LIMIT 1) AS nn ON nc.id=nn.id_n_join
  4.    LEFT JOIN (SELECT :id AS id_p_join, `id` as id_p, `title` as title_p FROM `news` WHERE `id`>:id ORDER BY `id` ASC LIMIT 1) AS np ON nc.id=np.id_p_join
  5.    LEFT JOIN (SELECT :id AS id_c_join, COUNT(`id`) AS news_count_all FROM `news`) AS c ON nc.id=c.id_c_join');
  6.  
  7. $select->execute(array(':id'=>(int) $id));



ok - moim zdaniem się nie da aczkolwiek czekam na jakąkolwiek odpowiedź nawet kogoś w 100% przekonanego, że się nie da winksmiley.jpg...




pewnie "nie za bardzo po polsku" napisałem ;p - przepraszam ale to wina % - ów i w sumie dzięki nim założyłem chyba już 3 temat winksmiley.jpg

pozdro i wesołych świąt winksmiley.jpg

korro
Generalnie można wyciągnąć where poza widok i zrobić tak:
  1. SELECT kolumny
  2. FROM widok
  3. WHERE kolumna = wartość

w Twoim przypadku nic nie da się zrobić.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.