Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Left Join a nadpisywanie kolumn
Forum PHP.pl > Forum > Bazy danych > MySQL
Kuziu
  1. SELECT *
  2. FROM news LEFT JOIN users ON (news.user_id = users.id) ORDER BY time LIMIT 5


I teraz pojawia się problem ... nie mam dostępu do news.id bo zostało nadpisane przez users.id

Nie da się jakoś tak zrobić żeby dać " ... LEFT JOIN users id as user_id, nick ...." questionmark.gif
nospor
Coś takiego w selecie musisz rozwiązać:
  1. SELECT news.id newsid ....

teraz do news.id odwolujesz się poprzez newsid
Kinool
a nie przypadkiem tak:
  1. SELECT news.news_id AS newsid ...
nospor
Może być i as, ale i bez as działa. Ja zawsze uzywam bez as (mniej kodu ) biggrin.gif
Kuziu
To to wiedziałem ...

chodziło mi o aliasy do tabeli dołaczanej a nie tej do której dołaczam ... czyli zeby tabela 'users' posiadała alias :|
nospor
  1. SELECT news.id newsid,users.id usersid ..
Kuziu
Dobra bo ja czegoś nie kumam :|

  1. SELECT *
  2. FROM news LEFT JOIN users.id AS usersid,users.nick ON (news.user_id = users.id) ORDER BY time LIMIT 5


questionmark.gif
nospor
Oj chyba tak. po left join dajesz nazwę tabeli, a nie pola w tabeli. POla określasz w select. Czyli jeśli chcesz, aby ci się pole users.id nazywalo inaczej niż id to dajessz w select users.id as usersid i git. (patrz mój post wyżej).

No chyba że ja nie kumam o co ci chodzi.

No ale masz konflikt nazw (dwa id), czyli więc to w selectie trzeba rozwiązać (patrz wyżej)
Kuziu
Ok działa ...

  1. SELECT news.*, users.id AS userid, users.nick
  2. FROM news LEFT JOIN users ON (news.user_id = users.id) ORDER BY time


Poprostu myślałem, że nie moge po SELECT dać tabeli 'users' gdyż jest ona dołączana przez LEFT JOIN ... ale okazało sie, że mogę.

Teraz jeszcze sprawdze czy nie wyciąga czasem 2 razy tych samych kolumn ...

Dzieki za pomoc.

---------------------------------------
Edit:

W sumie to nie musze nawet pobierać users.id
  1. SELECT news. * , users.nick
  2. FROM news LEFT JOIN users ON ( news.user_id = users.id )
  3. ORDER BY time

user_id mam z newsów a z users pobiorę tylko autor'a i wszystko śmiga ok

guitar.gif
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.