Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] IN i podzapytanie z warunkiem OR
Forum PHP.pl > Forum > Bazy danych > MySQL
pionas
Cześć,

mam pewien problem.
Chcę wyświetlić swoich znajomych.

znajomosci
- osoba_wysylajaca
- osoba_odbierajaca
- data
- status

Gdy ktoś wyśle prośbę dodania do znajomych to dodaje rekord i status=0, gdy osoba_odbierajaca zaakceptuje status=1.

I teraz chciałbym wyświetlić loginy wszystkich znajomych danej osoby.

Mam takie zapytanie:
  1. SELECT login FROM uzytkownicy WHERE uzytkownik_id IN ((SELECT osoba_odbierajaca FROM znajomosci WHERE osoba_wysylajaca={id_uzytkownika} AND STATUS=1) OR (SELECT osoba_wysylajaca FROM znajomosci WHERE osoba_odbierajaca={id_uzytkownika} AND STATUS=1)) ORDER BY login ASC

I wyświetla login o uzytkownik_id=1, a powinno o uzytkownik_id=2

Gdy osobno wykonam zapytania:
  1. SELECT osoba_odbierajaca FROM znajomosci WHERE osoba_wysylajaca={id_uzytkownika} AND STATUS=1
// daje uzytkownik_id=2
  1. SELECT osoba_wysylajaca FROM znajomosci WHERE osoba_odbierajaca={id_uzytkownika} AND STATUS=1
// zero wyników

Czemu tak się dzieje? Jak poprawić takie zapytanie?
Pyton_000
zamiast słowa OR spróbuj wstawić słowo UNION
pionas
działa, wielkie dzięki smile.gif
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.