![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 1 Dołączył: 7.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
SELECT * FROM tabela1
WHERE opcja1='1' and opcja2 = (SELECT opcja2 from tabela2 WHERE id = 3) Mam takie zapytanie w bazie danych gdzie pobieram dane z tabeli 1 filtrując je przez opcja 1 i opcja 2. Opcja 2 jest pobierana z innej tabeli (tabela2). Moje pytanie jest następujące: jak wykonać zapytanie aby czasami warunek 'opcja2 = (SELECT opcja2 from tabela2 WHERE id = 3)' był pomijany (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ponieważ przez opcje 1 dane muszą być filtrowane, ale przez opcje 2 nie bedą filtrowane kiedy opcja2 przyjmie wartość 'all' lub 'NULL' (obojętnie) opcja 2 = 'all' - dane nie są filtrowane przez opcja2 opcja 2 = 'A1' - dane są filtrowane przez opcja2 opcja 2 = 'A2' - dane są filtrowane przez opcja2 .... idt Mój problem polega na tym, że nie wiem jak napisac takie zapytanie aby czasami filtracja przez opcja2 było pomijane. Najlepiej chciałbym to uzyskać w jednym zapytaniu:) Ten post edytował island 13.11.2008, 12:20:45 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 2 Dołączył: 12.03.2008 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
eee...chyba sam sobie odpowiedziałeś na pytanie
Cytat Ponieważ przez opcje 1 dane muszą być filtrowane, ale przez opcje 2 nie bedą filtrowane kiedy opcja2 przyjmie wartość 'all' lub 'NULL' (obojętnie) generuj to zapytanie i w zlezności od spełnienia warunków if'a lecisz z warunkiem w selecie z opcja1 lu obiema mam nadzieje, że sie jasno wyraziłem |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 1 Dołączył: 7.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
CZyli według Ciebie najpierw mam sprawdzać czy opcja2 z tabeli2 przyjmuje wartość 'all' lub inną, a następnie jeśli przyjmie 'all' to nie filtruje przez opcja2, a jeśli przyjmie <> 'all' to filtruje przez opcja2.
W rezultacie generuje 2 zapytania do bazy danych i dodatkowo funkcja IF. Chciałbym się dowiedzieć czy mogę to samo uzsykać za pomocą jednego zapytania sql. Ten post edytował island 13.11.2008, 12:36:07 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 2 Dołączył: 12.03.2008 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
hmmm...czy da sie w jednym zapytaniu to watpie (popatrz na składnie...niby jak?) ale moge sie mylic.
Cytat W rezultacie generuje 2 zapytania do bazy danych i dodatkowo funkcja IF. Chciałbym się dowiedzieć czy mogę to samo uzsykać za pomocą jednego zapytania sql. tak czy inaczej, oczywiscie zalezy jak na to patrzec, masz 2 zapytania, tyle ze w jednym (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) nie wiem jakiej bazy uzywasz i dlaczego zalezy Ci na jednym zapytaniu. mozesz to zarobic uzywajac procedur w bazie, w tedy z interfejsu generujesz jedno "zapytanie" do bazy, a wspomnia procedura zajmuje sie "generowaniem" zapytan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował wujko_thc 13.11.2008, 12:49:21 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 1 Dołączył: 7.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Używam MySql.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 2 Dołączył: 12.03.2008 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
no:)...to w ktorejs tam wersji wprowadzili procedury
wiec masz juz kilka mozliwosci rozwiazania tego problemu:) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 1 Dołączył: 7.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Okej wujko_thc - wielkie dzięki.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 11:56 |