Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql] pobranie id z listy znajomych
szczypior
post 28.09.2007, 12:43:03
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 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?


--------------------
Pytania i odpowiedzi na każdy temat - ZapytajSie.pl
Darmowe aliasy i liczniki odwiedzin - RFV.pl
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 07:10