Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z pobieraniem danych z dwóch tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
foxbond
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??
cojack
Zrób z tego zapytania zapytanie z LEFT JOIN'em.
foxbond
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
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.