Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Trzy zlorzone zapytania...
Forum PHP.pl > Forum > Bazy danych > MySQL
alex19
Potrzebuje 3 dosc skomplikowanych zapytan, ale nie mam zielonego pojecia jak sie za nie zabrac sad.gif

Pierwsze chyba najprostsze, ale nie wiem za bardzo jak to rozwiazac.
Porzebuje wszystkich rekordow w ktorych data w tabeli kontakt jest na najblizsze 7 dni. Czyli rekordy gdzie data jest dzisiejsza, jutrzejsza .... az do dzis+7. Date mam typu DATETIME.
  1. SELECT * FROM klient LEFT JOIN pracownik ON klient.opiekun=pracownik.dzial
  2. LEFT JOIN dzialy ON pracownik.dzial=dzialy.poziom_dost
  3. LEFT JOIN kontakt ON klient.id=kontakt.id_firmy
  4. WHERE sprawdzona='1' AND dzialy.dzial='3' AND questionmark.gif?


Drugie jest juz trudniejsze winksmiley.jpg
Potzrzebne mi sa rekrody ktorych id nie ma w tabeli zablokowane, a zapytanie jest takie samo jak wyzej.
  1. SELECT * FROM klient LEFT JOIN pracownik ON klient.opiekun=pracownik.dzial
  2. LEFT JOIN dzialy ON pracownik.dzial=dzialy.poziom_dost
  3. WHERE sprawdzona='1' AND dzialy.dzial='3' AND questionmark.gif?


Trzecie najtrudniejsze i nie wiem czy wogole wykonalne.
Zapytanie jest potrzebne takie jak numer dwa, ale chcialbym pogrupowac rekordy wedlug tego czy ich id znajduje sie w tabeli kontakt w jakikolwiek sposob oznaczyc te ktorych nie ma w kontakcie.



---
Bykom STOPexclamation.gif!
Proszę poprawić temat wątku. Podpowiedź: PWN :: złożony
~mike_mech
slowik
1. Najpierw obliczasz przedział czasowy czyli pobierasz dzisiejszy dzien i ten za 7 dni.. do zapytania wstawiasz
  1. AND (kontakt.date > dzien_dzisiejszy AND kontakt.date < dzien_koncowy)


2.
  1. AND klient.id NOT IN( SELECT id FROM zablokowane )


3. Nie za bardzo zrozumiałem.. smile.gif

Pozdrawiam
alex19
Cytat(slowik @ 18.08.2006, 08:54 ) *
1. Najpierw obliczasz przedział czasowy czyli pobierasz dzisiejszy dzien i ten za 7 dni.. do zapytania wstawiasz
  1. AND (kontakt.date > dzien_dzisiejszy AND kontakt.date < dzien_koncowy)


2.
  1. AND klient.id NOT IN( SELECT id FROM zablokowane )

Super. Dzieki!

Cytat
3. Nie za bardzo zrozumiałem.. smile.gif


Potzebuje tego zapytania
  1. SELECT * FROM klient LEFT JOIN pracownik ON klient.opiekun=pracownik.dzial
  2. LEFT JOIN dzialy ON pracownik.dzial=dzialy.poziom_dost
  3. LEFT JOIN kontakt ON klient.id=kontakt.id_firmy
  4. WHERE sprawdzona='1' AND dzialy.dzial='3' AND AND klient.id NOT IN( SELECT id FROM zablokowane )

ale chcialbym pogrupowac wyniki wedlug tego czy id klienta znajduje sie w tabeli kontakt czy tez nie. Te rekordy ktore sie nie znajduja chcialbym jakos inaczej zanzaczyc przy wypisywaniu.
Czy teraz jasniej?
kossa
zamiast tyle razy używać and użyj operatora between, np:

  1. SELECT * FROM nba WHERE (dzien_dzisiejszy BETWEEN $dzien_dzisiejszy AND $dzien_koncowy);


Łukasz
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-2024 Invision Power Services, Inc.