![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jak powinno brzmieć zapytanie, które w przypadku braku rezultatów z pierwszego zapytania podrzędnego pyta drugi raz za pomocą drugiego zapytania podrzędnego?
Czyli działa np. tak: Jeżeli zapytanie SELECT * FROM my_table WHERE my_col = 1 AND my_col_b = 2 nie zwróci żadnego rekordu, to będzie drugie zapytanie, o następującej treści SELECT * FROM my_table WHERE my_col = 1 A więc chodzi o to, aby "troszkę" poszerzyć zakres wyszukiwania, czyli złagodzić warunek, kiedy się nic nie znalazło. Jeśli można prosić, to podajcie rozwiązanie z dokładną składnią. Z góry dziękuję |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
O coś takiego chodzi. Bo rekordy spełniające ten bardziej wymagający warunek posiadają pewne dane podstawowe, ale też dodatkowe dane specjalne. A rekordy spełniające tylko ten słabszy warunek mają mają tylko dane podstawowe.
Problem polegał na tym, że przy szczegółowym warunku, tym z 'and', można było nie otrzymać tych danych podstawowych, gdy w bazie nie było rekordu spełniającego szczegółowy warunek. A przy zapytaniu tym ogólniejszym znajdywały się rekordy, które nie miały danych specjalnych, miały dane specjalne, ale niekoniecznie te właściwe dane specjalne, oraz ewentualnie unikalny rekord z właściwymi danymi specjalnymi. I ten unikalny rekord z właściwymi danymi specjalnymi, jeśli był, to nie był możliwy do uchwycenia w sensie odfiltrowania. Jeszcze mam pytanie: rozumiem, że stosowanie tutaj klauzuli if jest niekonieczne, ale jeśli się by ją zastosowało, to co ona robi? Rekordy spełniające warunek są wybierane jako pierwsze, na co wskazuje liczba 1, a niespełniające tego warunku są wybierane w drugiej kolejności? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 15:58 |