Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konstrukcja zapytania w skrypcie ze znajomymi
cycofiasz
post
Post #1





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Witam, mam takie tabele: users i friends.

Tabela friends składa się z 3 pól: friendship_id,friend1,friend2.
Tabela users składa się z 2 pól: user_id i username.
Chciałbym teraz pobrać nicki wszystkich przyjaciół usera o id=1, którego id może znajdować się zarówno w polu friend2 jak i friend1.

Mam takie zapytanie :
  1. SELECT friendship_id,friend2,username FROM friends,users WHERE friend1 = 1 AND friend2=user_id
  2. UNION
  3. SELECT friendship_id,friend1,username FROM friends,users WHERE friend2 = 1 AND friend1=user_id


Ale nie jest ono zbyt wydajne (union).
Kiedyś kombinowałem z takim zapytaniem , ale nie umiem dodać do tego żeby pobierało z tabeli users pole username:

  1. SELECT friendship_id, IF( friend1 =1, friend2, friend1 ) AS przyjaciel
  2. FROM friends WHERE friend1 =1 OR friend2 =1;


Jak zmodyfikować to drugie zapytanie tak aby pobierało też username?

Ten post edytował cycofiasz 2.01.2009, 15:46:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
xmik
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.02.2006

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


Tak, poza nawiasem. Mało wydajnie łączysz tabele. Użyj JOIN'ów.
Go to the top of the page
+Quote Post
SzamanGN
post
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

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


A gdzie widzisz problem:
  1. SELECT u.`username`
  2. FROM `users` AS u,`friends` AS f
  3. WHERE (f.`friend1`=u.`user_id` AND f.`friend2`=1) OR (f.`friend2`=u.`user_id` AND f.`friend1`=1)


--------------------
SzamanGN
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 Aktualny czas: 21.08.2025 - 05:33