![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 1 Dołączył: 16.01.2008 Skąd: Świnoujście Ostrzeżenie: (0%) ![]() ![]() |
Witam
Postaram się opisać problem w miarę jasno i czytelnie: Posiadam tabelę z przedmiotami ( id | nazwa ) oraz tabelę z parametrami tych przedmiotów ( id | p_id | wartosc ) - p_id to id parametru Każda wartość parametru to nowy wpis w tabeli; W jaki sposób sklecić zapytanie do bazy danych aby sprawdzić czy przedmiot z określonym id posiada wszystkie wymienione parametry np. chce sprawdzić czy przedmiot z id=5 posiada parametry o wartości A, B, C? Zapytanie z IN() odpada np. zwróci ten sam wynik jeżeli dam IN(A, (IMG:style_emoticons/default/cool.gif) i taki sam jeżeli dam IN(A,B,C) a potrzebuje sprawdzić czy przedmiot posiada wszystkie z wymienionych; Zapytanie z OR lub AND także nie zdało tutaj egzaminu; Będę wdzięczny za wszelką pomoc i sugestie; Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
powiem tak to wszystko zależy od tego jak to rozplanujemy, bo to że czasem wydaje nam się, że użycie po prostu WHERE i kilka instrukcji to czysta amatorszczyzna... wcale nie musi oznaczać, że tak jest gorzej... bo co z tego że rozbudujemy nasze zapytanie na kilka poziomów skoro może się okazać, że czas dostępu jest o wiele dłuższy... np na szybko znalazłem porównanie NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL i Join w tym wypadku okazał się na szarym końcu...
http://explainextended.com/2009/09/15/not-...ull-sql-server/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 22:50 |