Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Cześć!
Kod:
Niestety nie zwraca on ID użytkownika, całą reszte już tak. ID na pewno jest. Przy samym select'cie bez left join'a wszystko jest ok. Wiecie o co chodzi? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Problemem jest tu... *. Przy * zwracane są wszystkie kolumny ze wszystkich tabel. W MySQL w kolejności występowania we FROM. Czyli dla ciebie będzie to: e.id, e..., ... c.id, c...., ... en.id, en... A PDO nazywa te kolumny tak jak ma. Czyli nazywa je: id (z e), employee_id (z c), id (z c) - upss, nie mogę, bo już mam id. A potem wstawia pobrane wartości do odpowiednich kolumn. W kolejności występowania. Więc do id w efekcie wyląduje ci id z OSTATNIEJ tabeli. A jeśli jest ona dowiązana LEFT JOINem, to może się zdarzyć, że jest NULL, więc nie ma wartości. A widzę, że nie skorzystałeś z rady i wolałeś użyć 4 zmiennej zamiast prostego IN ... Mam na myśli "(c.number = :variable1 OR e.firstname = :variable2 OR e.lastname = :variable3 OR c.card_id = :variable4)" Nie zmieniłem bo dopiero dziś zerknąłem na ten temat. Co do tego co napisąłeś apropo zapytania. Jak może nadpisywać wartością z innej tabelki skoro nie ma pasujących pól a co za tym idzie nie ma czym napisać bo tabelka którą chce dołaczyć nie ma odpowiednich pól (w sensie żadne nie zgadza się z polem które jest podane w łączeniu)? Ten post edytował NickOver 2.03.2015, 14:16:30 |
|
|
|
NickOver PDO::Brak ID przy left join 2.03.2015, 13:10:17
Pyton_000 dodaj [SQL] pobierz, plaintext e.id AS employee_id... 2.03.2015, 13:18:58
mmmmmmm Problemem jest tu... *.
Przy * zwracane są wszystk... 2.03.2015, 13:41:09
nospor ON e.employee_id = c.employee_id
Jesli twoje ID k... 2.03.2015, 14:18:21
NickOver No tak, to rozumiem. Ale czemu tak się dzieje skor... 3.03.2015, 11:09:15
nospor Ale jest.. bazy nie interesuje czy jest prawidlowy... 3.03.2015, 11:16:03 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 13:08 |