Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SOLVED][SQL] SELECT + JOIN + ? - pomoc z zapytaniem
barry853
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.02.2010

Ostrzeżenie: (0%)
-----


Witam,

Chciałbym Was prosić o pomoc z zapytaniem. Mam bazę o mniej więcej takiej strukturze relacji:

OWNER * - * CAR

Dane wejściowe to zbiór id'ków samochodów. Zapytanie ma pobierać tych właścicieli, którzy posiadają każdy ((IMG:style_emoticons/default/exclamation.gif) ) z samochodów, który zawarty jest w podanym zbiorze.

Czyli np.
- właściciel WA posiada samochody CA i CB, a WB posiada tylko CA - wywołanie zapytania pobierzWłaścicieli( array(CA.id, CB.id) ) musi dać w wyniku tylko WA - nie można więc użyć struktury WHERE id IN , po w wyniku dostalibyśmy też WB (a przynajmniej ja nie wiem jakby się miała ona przydać)

Ten post edytował barry853 6.02.2011, 12:17:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
barry853
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.02.2010

Ostrzeżenie: (0%)
-----


@trafas

Dzięki wielkie!

Powiem tak - jak przeczytałem Twoje rozwiązanie, to pomyślałem - aha, błąd kolego, bo przecież jak dodam właściciela WC i samochód CC, gdzie właściciel WC ma samochody CB i CC to mi zwróci zły wynik

Czyli:
- WA - (CA),
- WB - (CA, CB),
- WC - (CB,CC) )

sądziłem że zapytanie dla CA CB zwróci mi właścicieli WB i WC, po warunek HAVING będzie się zgadzał a WHERE IN nie pomoże. Z HAVING też próbowałem wcześnie, ALE ! - zacząłem pisać Twojego SQL'a u siebie żeby to udowodnić. Ja stosuję ORM Doctrine, a tam się raczej zapomina o tabelach asocjacyjnych i zapytaniach na nich. Widać skrzywienie i przez to później problem z SQL'em zwykłym (IMG:style_emoticons/default/smile.gif) . Dopiero sobie zdałem sprawę, że robisz zapytanie właśnie na tabeli asocjacyjnej, a nie na owner jak to ja robiłem używając Doctrine'owego DQL'a.

Czułem, że to jest jakiś banał, ale za nic nie mogłem skojarzyć tego prostego rozwiązania, dzięki (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 14:19