![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
mam takie zapytanie do sql
Moje wątpliwości budzi kod
Czy mysql obsługuje w jednym zapytaniu dwa warunki do tego samego pola? W tym zapytaniu nie sprawdza mi warunku cms_page_sections_assign.sid !=7. Macie jakiś pomysł jak to zrobić, aby ten warunek również był brany pod uwage przy wyborze odpowiednich rekordów? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat(maciu @ 2004-07-19 14:35:19) Moje wątpliwości budzi kod
Moje wątpliwosci też budzi. "Jest równe 6 i nierówne 7" ? co chcesz osiągnąć? -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
w tabeli cms_page_sections_assign może być kilka rekordów dotyczących tej samem strony(rozróznianego za pomocą innego pola w tabeli), i wtedy może mieć pole sid równocześnie wartość 6 i 7
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
No dobra, ale zapis x = 6 AND x != 7 sprowadza się do zapisu x = 6!
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
problem polega na tym, że wartości 6 i 7 są w osobnych rekordach i czy mysql potrafi to sprawdzić w jednym ruchu
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Potrafi znależć rekordy, gdzie sid będzie równy 6 lub 7, albo będzie różny od 6 i różny od 7. Powiedz może jakie rekordy cię interesują, i wtedy ułoży sięodpowiednie zapytanie.
To o co pytasz jest możliwe, ale Twój warunek nie ma sensu. -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
wyjaśnię to dokładniej
tabela cms_page_sections_assign składa się z pół id, pid(id z cms_page), sid czyli mamy np, takie rekordy w tej tabeli: id pid sid 4 23 6 6 23 7 7 25 4 8 24 6 chodzi o to, żeby zapytanie zwróciło te PID, które posiadają wartość 6 i nie posiadają wartości 7. W tym przypadku zwróci PID 24 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Eeeeee, to trza było od razu, że mieszasz sid z id! Bo z przykładu domyśliłem się, że tak właśnie jest. Oto fragment zapytania:
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Kszychu nie zrozumiałeś. Pole id jest tylko polem porządkowym, jego wartość nie ma żadnego znaczenia w tym przypadku. Chodzi o to, aby znalazł te numery PID, które mają wartość 6 i jednocześnie nie mają wartości 7. Czyli w tym przykładzie, który podałem zwróci PID=24
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 21.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
maciu:
Chyba Ty coś namieszałeś ![]() Skoro id nie ma żadnego znaczenia, to w twoim przykładzie takze pierwsza krotka ma wartość 6, i zwroci PID=23. Czyli jak na moj gust :
Jesli to jednak nie to, to sproboj jeszcze jaśniej wyjaśnić pytanie ![]() pozdrawiam |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
podam jeszcze raz przykład, tym razem bez id bo starsznie Wam to miesza
tabela cms_page_sections_assign PID SID 24 6 24 7 22 6 30 7 31 6 pole PID jest równe: cms_page.id=cms_page_sections_assign.pid SID przyjmuje wartość od 1 do 7 Wartość pola PID może się powtarzać, ponieważ strona (prowadzi do niej indeks PID) może mieć przypisane kilka różnych wartości SID (jak w przykładzie PID=24 ma przypisane dwie wartości SID 6 i 7) I teraz potrzebuje, aby wybrał mi rekordy takie w których ten sam PID ma wartość 6, ale nie ma wartości 7, czyli coś takiego:
tylko, że sql sprawdza tylko ten pierwszy warunek. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cholera człowieku.
Pomyśl logicznie. Jeśli coś ma wartość 6 to ZAWSZE NIE MA wartości 7. Rozumiesz? Plączesz się jak sznurek od tampaxa. Zalecam weekebdową przerwę od komputera. -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Spokojnie chłopaki,
![]() Ja zajarzyłem o co chodzi, ale niestety nie potrafię mu pomóc. Spróbuję wyjaśnić, może ktoś będzie wiedział. Otóż są pola: PID SID 24 6 24 7 22 6 30 7 31 6 No i ten nieszczęsny PID = 24 występuje dwa razy; raz jego SID jest równy 6, a poniżej, w drugim wpisie jest równy 7. I teraz chodzi o to, by wyłapać wszystkie numery PID, dla których numer SID jest równy 6, ale jako że może on przyjąć jeszcze inne wartości, to żadna z tych innych wartości ni może być równa 7. W tym przypadku, dla PID równego 24 SID wynoszą 6 i 7, więc drugi warunek jest niespełniony. Tylko jak to opisać w SQLu, niestety nie wiem. Pozdrawiam -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
kszychu dokładnie o to mi chodzi.
A ty scanner, jak nie potrafisz zrozumieć moich postów to na nie nie odpowiadaj, a nie będziesz się dąsał. Inni potrafią zrozumieć, więc to ja Tobie zalecam weekendowy odpoczynek od kompa. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 22.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(kszychu @ 2004-07-23 11:35:43) Tylko jak to opisać w SQLu, niestety nie wiem. Trzeba uzyc podzapytania.
Cos takiego. Nie sprawdzalem tego zapytania, bo nie mam w tym momencie dostepu do bazy mysql, ktora obslugiwala by podzapytania (ver 4.1.x zdaje sie) Ten post edytował Parti 23.07.2004, 13:51:02 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
czy da się to zrobić nie używając podzapytań, bo niestety mam starą wersję myslq'a?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 01:47 |