Witam, czy jest możliwe wyciągnięcie jednym zapytaniem dwóch danych z tej samej tabeli? W jednej tabeli mam pola kto zmodyfikował i kto dodał pozycję, które często różnią się od siebie - pola te, to id użytkowników z drugiej tabeli. I teraz próbuję wyświetlić nazwy tych użytkowników z tabeli, mając id tych użytkowników w drugiej tabeli.
SELECT r.id, r.pole_1, r.pole_2, r.pole_3, r.login_id, r.modyfik_id, l.login_name FROM rejestr AS r LEFT JOIN login AS l ON r.login_id=l.lid WHERE r.rid=1
SELECT r.id, r.pole_1, r.pole_2, r.pole_3, r.login_id, r.modyfik_id, l.login_name FROM rejestr AS r LEFT JOIN login AS l (SELECT l.login_name AS namemod FROM login WHERE l.lid = r.modyfik_id) ON r.login_id=l.lid WHERE r.rid=1
LEFT JOIN login AS ll ON r.modyfik_id=ll.lid
Prawdopodobnie dobrze, ale pokaż ostateczne zapytanie.
LEFT JOIN nie musisz używać, jeśli masz pewność, że w tabeli rejestr są użytkownicy, którzy są również w tabeli login, albo nie interesują Cię wpisy w rejestr, dla których brak odpowiadających im użytkowników.
Całość wygląda teraz tak:
SELECT r.id, r.pole_1, r.pole_2, r.pole_3, r.login_id, r.modyfik_id, l.login_name, ll.login_name FROM rejestr AS r LEFT JOIN login AS l ON r.login_id=l.lid LEFT JOIN login AS ll ON r.modyfik_id=ll.lid WHERE r.rid=1
while($row = $rezult3->fetch_array())
Sprawdź jak wygląda cała tablica $row, będziesz wiedział dlaczego.
A potem użyj aliasów w zapytaniu.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)