Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aliasy
Forum PHP.pl > Forum > Bazy danych > MySQL
el Santiago
Aliasy w MySQL działają na zasadzie:

SELECT cos as v, cos2 as vu itd.

A ja chcę przyspieszyc prace i miec: SELECT * ... no właśnie, wszystko z jakimś aliase - ustalonym w tym zapytaniu, czy zatem da się z tabeli
id_user | login

SELECT *... aby wyświetlił wszystkie pola bazy z prefiksem u. czyli u.id_user itd. bez konieczności wpisywania w zapytanie pobieranych komórek.
nexis
Podaj może jakieś przykładowe dane i jaki efekt chcesz uzyskać, bo ja póki co nie wiem o co Ci chodzi.
el Santiago
Generalnie chodzi o to - dla dowolnej tabeli w bazie - że select ma np. format:

SELECT * FROM....

`users`:
id_user | login

A ja chcę jednym zapytaniem, maksymalnie uproszczonym, pobrać dane z prefiksem (jako 'aliasy'):
Czyli wykonać bezpośrednio zapytanie:
SELECT id_user as u.id_user, login as u.login FROM...

Jeśli mam 30 pól w bazie, to nie jest wydajnym sposób zapisywania każdego z nich w zapytaniu jako: ... pole1 as p.pole1, pole 2 as p.pole2.

Po co to?

Kiedy pobieram dane LEFT JOIN lub innym typem, nie uzyskam w wykonanym zapytaniu danych z pól, które występują w obu tabelach ('dublują się'). Np. id_user w dwóch tabelach mają identyczne wartości, ale ich nie pobiorę w JOIN'ie.
phpion
Możesz zrobić tak, że podasz te pola, które się dublują, np.
  1. SELECT a.*, a.user_id AS a_user_id FROM ...

ale ja bym się zastanowił po co to wszystko? Skoro te pola mają te same wartości to po co tak cudować?
el Santiago
Hmm, jeśli wezmę:

`users`:
id_user | login

`avatars`: (załóżmy, że user może mieć x avków, stąd ta tabela)
id_avatar | id_user | link

to:

SELECT * FROM users LEFT JOIN avatars ON (users.id_user = avatars.id_users)

NIE zwrócie nam w wyniku id_user, prawda?

Group by?
phpion
Chyba raczej powinineneś odwrotnie zapisać to zapytanie: najpierw wybierasz dane z avatars, a później dołączasz tabelę użytkowników. No ale nieważne. Twój kod zwróci takie pola:
id_user, id_avatar, login, link
Po co dublować id_user?
el Santiago
W takim wywołaniu wyrzuciło mi puste id_user, a reszte danych ok.

Pomogło docelowo group by.

Gracias,
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.