Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie do bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
g-4
Witam,

mam stworzone bazy, a w niej jakies tam rekordy

oferta:
- 1 (oferta_id)
- .
- .
- .
,

- 2 (oferta_id)
- .
- .
- .
,

- 3 (oferta_id)
- .
- .
- .


oferta_to_atrybuty:
- 1 (atrybuty_id)
- 1 (oferta_id)
,

- 2 (atrybuty_id)
- 1 (oferta_id)
,

- 2 (atrybuty_id)
- 2 (oferta_id)



problem kotrego nie moge rozwiazac wystepuje w momencie kiedy probuje wyswietlic rekordy, ktore zawieraja wiecej niz 1 atrybut.
np.

aby pokazal sie rekord ktory ma atrybut 1 i 2

i wyswietlil sie jako ( w tym przypadku) rekord o oferta_id = 1.

moje zapytanie ( dziala tylko w momencie szukania tylko 1 atybutu )


  1. SELECT * FROM oferta o LEFT JOIN oferta_to_atrybuty a ON (o.oferta_id = a.oferta_id) WHERE o.oferta_status = 1 AND a.atrybuty_id = 1 AND a.atrybuty_id = 2 GROUP BY o.oferta_id
webasek
Oto zapytanie, które powinno zadziałać:

  1. SELECT * FROM oferta WHERE oferta_status = 1 AND oferta_id IN (SELECT oferta_id FROM oferta_to_atrybuty WHERE atrybuty_id = 1 ) AND oferta_id IN (SELECT oferta_id FROM oferta_to_atrybuty WHERE atrybuty_id = 2 )


Można też spróbować coś z union.
g-4
dzieki, zapytanie dziala dokladnie tak jak chcialem biggrin.gif

pozdrawiam
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.