![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, piszę w pewnym problemem z którym długo się męczę i w końcu się poddałem.
Mianowicie chodzi o zapytanie do dwóch tabel podczas wyszukiwania rekordów. Mam dwie tabele: - ogloszenia( advert_id | title | content ) - cechy_ogloszen ( id | advert_id | cecha_id ) Każde ogłoszenie może mieć kilka cech (relacja advert_id) i teraz chciałbym wyszukać tylko takie ogłoszenia które mają cechy np. 1 i 2 (ogłoszenie musi mieć te dwie cechy, może mieć więcej byleby miał te dwie wskazane). Proszę o pomoc, pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Najprościej (co nie oznacza najlepiej) można to ogarnąć tak:
To zadziała dla dwóch spokojnie - ale już dla trzeciej musisz dodać kolejnego joina... i warunek w WHERE... więc to nie jest uniwersalne rozwiązanie ale w miare szybkie Możesz też użyć opcji z podzapytaniem (wtedy jest uniwersalne choć mniej wydajne)
Ostatecznie możesz kombinować z GROUP_CONCAT na przykład tak:
Do wyboru, do koloru (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 09:57 |