Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql] pobranie id z listy znajomych
szczypior
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 5.02.2007

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


Witam

Robię do swojej stronki coś w stylu listy znajomych takiej jak we wszystkich serwisach społecznościowych.

Mam tabele znajomi w której są kolumny

| id_1 | id_2 | akt |

Pierwsza kolumna przechowuje id jednej osoby, a druga drugiej, które się znają. KOlumna akt przechowuje boolowską zmienną czy zapraszana osoba już akceptowała znajomość czy nie.

Żeby pobrać znajomych użytkownika x musze przeszukać obie kolumny pod względem idx'a tam gdzie akt=1 i joinować drugą tabele żeby pobrać imiona jego znajomych.

Pytanie moje brzmi czy można to zrobić wszystko w jednym zapytaniu?

Bo w dwóch można tak:
  1. SELECT login FROM users WHERE id=(SELECT id_1 FROM znajomi WHERE id_2 = 'idx' AND akt = '1')

a potem drugą kolumnę
  1. SELECT login FROM users WHERE id=(SELECT id_2 FROM znajomi WHERE id_1 = 'idx' AND akt = '1')

Ale wtedy robią się naprawdę 4 zapytania (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Przy takim zapytaniu:
  1. SELECT id_1,id_2 FROM users WHERE (id_1='idx' OR id_2='idx') AND akt ='1'

dostane dwie kolumny i w jednej albo w drugiej w każdym wierszu bedzie idx, ktore jest zbedne i tylko niepotrzebnie zwieksza bazie czas wykonywania select'a. Czy jest możliwość odrzucenia idx i uzyskania jednej kolumny z samymi id jego znajomych?

I w ogóle czy takie rozwiązania usługi "znajomych" są dobre, czy znacie jakiś lepszy patent?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.09.2025 - 10:43