Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie sql
Forum PHP.pl > Forum > Bazy danych
toaspzoo
Witam, mam oto takie zapytanie listujące mi wpisy moich znajomych z bazy danych:

  1. SELECT
  2. *
  3.  
  4. FROM
  5.  
  6. znajomek_zmysli,
  7. znajomek_znajomi
  8.  
  9. WHERE
  10. (
  11. znajomek_zmysli.nick IN
  12. (
  13. SELECT id_znajomego FROM znajomek_znajomi WHERE id_znajomego2 = '$id')
  14. AND
  15. znajomek_znajomi.id_znajomego2 = '$id'
  16. AND
  17. znajomek_znajomi.id_znajomego= znajomek_zmysli.nick
  18. )
  19. OR
  20. (
  21. znajomek_zmysli.nick IN
  22. (
  23. SELECT id_znajomego2 FROM znajomek_znajomi WHERE id_znajomego = '$id')
  24. AND
  25. znajomek_znajomi.id_znajomego = '$id'
  26. AND
  27. znajomek_znajomi.id_znajomego2= znajomek_zmysli.nick
  28. )
  29.  
  30.  
  31.  
  32. ORDER BY znajomek_zmysli.id DESC LIMIT 0,15


Zmienna $id oznacza moje id

chciałbym wyświetlić nie tylko ich wpisy, lecz swoje, ale gdy dodaję na dole (przed limit...)

  1. OR
  2. (
  3. znajomek_zmysli.nick = '$id';
  4. )


cała tablica wypełnia mi się jednym wpisem



--
z góry dziękuję za pomoc
amii
Co zwracają podzapytania ? Bo jeśli zwracają puste wyniki to 3 warunek
  1. OR znajomek_zmysli.nick = '$id';
zostaje spełniony i całość zwraca jeden rekord tak jak to opisałeś.
toaspzoo
podzapytania zwracają kolejno id moich znajomych z bazy danych
bo są przykładowo w bazie

id_znajomego | id_znajomego2

12 | 56
46 | 12

---
i nie wiadomo w której kolumnie jestem, po to ten system

więc jak mam zrobić, aby zwrócił to wszystko + to, co w warunku na dole ?

pozdrawiam
Wykrywacz
  1. SELECT * FROM znajomek_zmysli a ,znajomek_znajomi b
  2. WHERE
  3. (
  4. a.id_znajomego=b.nick
  5. OR
  6. a.id_znajomego2=b.nick
  7. ) AND b.nick = '$id'


A nie prościej tak?
toaspzoo
i co, potem w pętli to muszę zrobić, chodzi o szybkość zapytania
5k7
Cytat(Wykrywacz @ 9.12.2011, 12:01:18 ) *
  1. SELECT * FROM znajomek_zmysli a ,znajomek_znajomi b
  2. WHERE
  3. (
  4. a.id_znajomego=b.nick
  5. OR
  6. a.id_znajomego2=b.nick
  7. ) AND b.nick = '$id'


A nie prościej tak?


A będzie to działać ? Wiem, że kiedyś miałem podobny problem. I powinno byc where (a.id_znajomego=b.nick AND b.nick = '$id') OR (a.id_znajomego2=b.nick AND b.nick = '$id'). Może coś pomieszałem bo nie śledziłem specjalnie to co pisaliście wcześniej.

Petlę to juz chyba w php, bo nie w bazie ; ]
Wykrywacz
Ale co ty chcesz w pętli dalej z tym zrobić bo nie rozumiem smile.gif

Jeżeli chcesz wyświetlić wszystkie to po prostu wywalasz warunek z where...
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.