Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie do sprawdzenia, zerknijcie na to zapytanie mysql
mysz0n
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

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


mam takie zapytanie
  1. SELECT id_zamowienia, z.numer_zgloszenia, z.data_zgloszenia, z.imie_nazwisko, z.dowod, z.pakiet, z.priorytet, z.skad, p.id_pakietu, p.nazwa_pakietu, r.id_priorytetu, r.nazwa_priorytetu
  2. FROM zamowienia z, pakiety p, priorytety r
  3. WHERE LOWER(z.imie_nazwisko) LIKE '%koł%' OR LOWER(z.ul_instalacji) LIKE '%koł%' OR LOWER(z.miasto_kod_instalacji) LIKE '%koł%' AND z.pakiet = p.id_pakietu AND z.priorytet = r.id_priorytetu
  4. GROUP BY id_zamowienia
  5. ORDER BY id_zamowienia


i nie wiem dlaczego zawsze dostaje błędne - takie same wartości na polu Priorytet i Pakiet, wsyztskie są równe pierwszemu wierszowi odpowiednio w tabeli Priorytety oraz Pakiety.
gdzie mam błąd?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kitol
post
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

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


Cytat
kitol ja wiem że to są aliasy - powinieneś to napisać go tego_typa:]

Sorki. To miało być do tego_typa:)

Nadal myślę że bład powoduje brak nawiasów. Wykonaj to przykładowe zapytanie:
  1. SELECT 1 OR 0 OR 0 AND 0 AND 0

W sensie logicznym jest równoważne warunkowi WHERE z twojego zapytania. Jak widzisz wystarczy spełnienie przynajmniej jednego warunku z LIKE aby wiersze zostały złączone, nawet wtedy gdy z.pakiet != p.id_pakietu lub z.priorytet != r.id_priorytetu. Potrzebujesz nawiasów. Dla porównania sprawdź:
  1. SELECT (1 OR 0 OR 0) AND 0 AND 0


kolega ten_typ ma rację lepiej jest łączyć tabele przez JOIN. Wówczas warunki złaczenia są lepiej widoczne dla każdej z tabel.
Go to the top of the page
+Quote Post

Posty w temacie


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: 18.10.2025 - 03:57