Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Pobieranie 'ID' z innej tabeli na podstawie 'name'
vegeta
post 10.12.2010, 16:04:48
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

Ostrzeżenie: (10%)
X----


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.

Ten post edytował vegeta 10.12.2010, 17:21:02
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
CuteOne
post 10.12.2010, 16:25:46
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


1. poczytaj o JOIN LEFT
2. jeżeli potrzebujesz wszystkich kolumn to *, może być smile.gif
Go to the top of the page
+Quote Post
Robert1985
post 10.12.2010, 17:34:29
Post #3





Grupa: Zarejestrowani
Postów: 84
Pomógł: 7
Dołączył: 5.08.2009
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Jeśli zależy Ci na szybkości skryptu to * bym nie proponował lepiej wyliczyć wszystkie pola tabeli tongue.gif


--------------------
"Istnieją dwa sposoby projektowania oprogramowania. Można napisać je tak prosto, że w oczywisty sposób nie będzie w nim niedoskonałości; można też uczynić je tak skomplikowanym ,że nie będzie w nim żadnych oczywistych niedociągnięć.Pierwsza metoda jest znacznie trudniejsza." C.A.R Hoare
Go to the top of the page
+Quote Post
vegeta
post 10.12.2010, 17:54:52
Post #4





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

Ostrzeżenie: (10%)
X----


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';
Go to the top of the page
+Quote Post
lord2105
post 10.12.2010, 18:06:26
Post #5





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

Ostrzeżenie: (0%)
-----


  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

Ten post edytował lord2105 10.12.2010, 18:07:38


--------------------
40% rozwiązań znajduje się tutaj.
59,9% tutaj.

Jeśli pomogłem rozwiązać Twój problem wciśnij
Go to the top of the page
+Quote Post
vegeta
post 10.12.2010, 19:27:22
Post #6





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 9.11.2008

Ostrzeżenie: (10%)
X----


Dzięki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 11:32