Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z pobieraniem danych z dwóch tabel
foxbond
post 16.03.2011, 14:09:21
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 12
Dołączył: 20.12.2009
Skąd: Siedlce

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


Aktualnie ma takie zapytanie:
  1. SELECT s1_users.id, s1_users.user, imie, miasto, respekt, last_activ, rank, urlop, premium, gg, cfg_profile_show_rewards AS cpsr, cfg_profile_show_car_info AS cpsci, cfg_profile_show_user_info AS cpsui, active_car_id, vmax, nazwa, v100, bak, bakmax, car_darmage AS cd, car_darmage_max AS cdm, foto_id FROM s1_users, s1_users_cars WHERE s1_users.id=xxx && s1_users_cars.id=s1_users.active_car_id


Problem występuje gdy gracz nie ma ustawionego aktywnego samochodu (s1_users.active_car_id = 0).
Zapytanie zwraca 'false' pomimo, że gracz istnieje.
Jest sposób, aby zapytanie w taki wypadku zwracało wartości 'null' w polach dot. samochodu lub po prostu zwracało dane tylko z pierwszej tabeli??

Proszę o szybką odpowiedź.

Z góry dziękuję.

EDIT:
Czy wpisanie 'table.' przed każdą z wartości może pomóc??

Ten post edytował foxbond 16.03.2011, 14:13:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
cojack
post 16.03.2011, 18:07:43
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Zrób z tego zapytania zapytanie z LEFT JOIN'em.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
foxbond
post 19.03.2011, 19:55:29
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 12
Dołączył: 20.12.2009
Skąd: Siedlce

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


aha

Nie wiem jak to się robi ale pogoogluję

Dzięki za pomoc.

Napisałem takie zapytanie, jednak nie działa jak powinno:
  1. SELECT s1_users.id, s1_users.user, imie, miasto, respekt, last_activ, rank, urlop, premium, gg, cfg_profile_show_rewards AS cpsr, cfg_profile_show_car_info AS cpsci, cfg_profile_show_user_info AS cpsui, active_car_id, vmax, nazwa, v100, bak, bakmax, car_darmage AS cd, car_darmage_max AS cdm, foto_id FROM s1_users LEFT JOIN s1_users_cars ON s1_users.id=20 && s1_users_cars.id=s1_users.active_car_id


tzn. zwraca wszystkich użytkowników i w dodatku wszyscy nają wartości null przy danych z drugiej tabeli (users_cars)

Próbowałem także z "right join", "join", "inner join" i z "full join" jednak ta ostatnia dodatkowo zwraca błąd:
#1054 - Unknown column 's1_users.id' in 'field list'


co_jest.gif co_jest.gif

Już sobie poradziłem metodą prób i błędów ;D

Jakby ktoś był ciekawy:
  1. SELECT nazwy pól FROM tabela1 LEFT JOIN tabela2 ON tabela2.pole=tabela1.pole
  2. WHERE tabela1.pole=xxx


Ten post edytował foxbond 19.03.2011, 14:57:26
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 Wersja Lo-Fi Aktualny czas: 26.06.2025 - 09:19