Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Pobieranie 'ID' z innej tabeli na podstawie 'name'
Forum PHP.pl > Forum > Przedszkole
vegeta
Witam.

W tabeli shoutbox mam następujące kolumny: id (id shouta oczywiscie tongue.gif), autor, tresc, date.

Pobieram wszystko przez:

  1. $zapytanie = 'SELECT * FROM shoutbox ORDER BY id DESC LIMIT 25';
  2. $wykonaj = mysql_query ($zapytanie);


I chcę, aby w SB nazwa gracza była wyświetlana jako link do jego profilu. Jak zrobić, aby było to pobierane w jednym zapytaniu? Potrzebne do tego mi jest tylko ID z tabeli users gdzie login jest równy autor z tabeli shoutbox.



Druga sprawa: czy w takim wypadku, kiedy tabela shoutbox zawiera id, autor, tresc i date i w zapytaniu stosuje * to czy powinienem stosowac SELECT id, autor, tresc, date FROM blablabla? Chodzi mi o to czy jest jakaś różnica w szybkości zapytania gdy pobieram wszystkie kolumny z tabeli * czy każdą kolumnę z osobna.
CuteOne
1. poczytaj o JOIN LEFT
2. jeżeli potrzebujesz wszystkich kolumn to *, może być smile.gif
Robert1985
Jeśli zależy Ci na szybkości skryptu to * bym nie proponował lepiej wyliczyć wszystkie pola tabeli tongue.gif
vegeta
Ok, ale czy LEFT JOIN będzie działać na zapytaniu z limitem?

Updatnięte zapytanie:
Kod
$zapytanie = 'SELECT `autor`, `tresc`, `date` FROM `shoutbox` ORDER BY `id` DESC LIMIT 25';
lord2105
  1. SELECT s.id, s.autor, s.tresc, s.date, u.id, u.name FROM shoutbox s LEFT JOIN users u ON s.autor = u.name ORDER BY s.id DESC LIMIT 25;


Pisane na szybko.

Pozdrawiam
vegeta
Dzięki.
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.