Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Złożone zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
1992bartekk
Witam posiadam dwie tabele:

1) znajomi - przykładowa tabela
id- nadawane auto
u - id usera
f - id znajomego
r - wynik: 0,1 - nie, 2 - tak

id | u | f | r
1 | 1 | 3 | 2
2 | 5 | 1 | 2
3 | 3 | 5 | 2
4 | 4 | 2 | 2

2) wpis:
id - nadawane auto
u - użytkownik wpisu
w - treść wpisu

id | u | w
1 | 1 | tresc 1
2 | 3 | tresc 2
3 | 5 | tresc 3
4 | 4 | tresc 4

O co mi chodzi... chcę aby z tabeli "wpisy" zostały pobrane tylko te wyniki gdzie ma się dodanych znajomych + swoje własne wpisy. Jak zrobić takie zapytanie?

Kombinuję coś w tym stylu ale to nie do końca to:
  1. $sql2 = "select user_id, friend_id from friends where
  2. ((user_id='$user_ID' and friend_id!='$user_ID') or (user_id!='$user_ID' and friend_id='$user_ID'))
  3. and results='2'";
  4. $rsd2 = mysql_query($sql2);
  5. while($rows2 = mysql_fetch_assoc($rsd2)){
  6.  
  7. IF($rows2['user_id']!=$user_ID){
  8. $id=$rows2['user_id'];
  9. }
  10. IF($rows2['friend_id']!=$user_ID){
  11. $id=$rows2['friend_id'];
  12. }


Wynik $id wyjdzie poprawny ale nie pobierze mi mojego id


Chodzi mi by nie było powtórzeń, coś w tym stylu:
  1. $sql2 = "select friend_id, user_id from friends where
  2. ((user_id='$user_ID' and friend_id!='$user_ID' group by user_id) or (user_id!='$user_ID' and friend_id='$user_ID' group by friend_id))
  3. and results='2'";


ok chodzi mi o coś takiego żeby nie było powtórzeń z bazy wiem ze to group by nie powinno być w tych miejscach ale nie wiem jak zrobić by to zapytanie było prawidłowe
packa
Chodzi Ci, żeby zostały pobrane z tabeli wpisy rekordy użytkownika i jego znajomych? Bo nie bardzo rozumiem co tu napisałeś...
Może coś w stylu:

  1. SELECT * FROM wpisy WHERE user_id = $userId OR user_id IN (SELECT friend_id FROM znajomi WHERE user_id = $userId)
odpowiednio dopasowane do potrzeb oczywiście
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.