[mysql] relacje

0

Mam teraz taki problem:
dla przykladu sa 2 tabele:

ewidence(id_ewidence,id_users, pole1...polen)
users(id_users, pole1...polen)

dla przykladu robie zapytanie:
SELECT * FROM users,ewidence WHERE
ewidence.id_users=users.id_users

Zapytanie zwraza 0 rekordow gdy nie mam wypelnionewgo pola ewidence.id_users, pomimo ze inne pola sa w tabeli ewidence.
Pytanie jeste takie: Jak zrobic, zeby pomimo ze nie ma jeszcze ustawionego pola ewidence.id_users dane z tej tabeli sie wyswietlaly, oraz zeby w przypadku ustawienia pola ewidence.id_users dane byly polaczone relacja (ewidence.id_users=users.id_users) . I to wszystko bylo zrobione za pomoca 1 zapytania sql :)

0

nie wiem za bardzo... sprawdz cos takiego:

SELECT * FROM users,ewidence WHERE
ewidence.id_users=szukane_id AND users.id_users=szukane_id
0
ssnake napisał(a)

nie wiem za bardzo... sprawdz cos takiego:

SELECT * FROM users,ewidence WHERE
ewidence.id_users=szukane_id AND users.id_users=szukane_id

to nie bedzie dzialac bo zapytanie zwroci Tobie albo wiersze o tych samych ID albo wiersze o okreslonym ID a operacja ma wygladac tak ze zwraca wiersze o tych samych ID jak i wiersze z tabeli ewidence ktore nie spelniaja poprzedniego warunku mozna to zrealizowac poprzez LEFT JOIN:

SELECT * FROM ewidence LEFT JOIN users ON ewidence.id_users=users.id_users
Dzialanie JOIN jest bardzo proste trzeba sobie tylko to tak przedstawic:
tabela1 LEFT JOIN tabela2 ON warunek
dolacz wyniki zwracane z tabela2 spelniajace dany warunek do wynikow zwracanych z tabela1(z lewej strony). Jesli warunek nie jest spelniony wynikami z tabela2 sa wartosci NULL.

1 użytkowników online, w tym zalogowanych: 0, gości: 1