![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wiam, mam takie 2 tabele
Kod invoice -buyer_id -paid 0 - niezaplacone, 1 - zaplacone companies -id_companies i zapytanie
i teraz tak Jeżeli tylko 1 część jest zgodna to zwraca 2 rekordy z pominięciem ostatniego warunku
Jeżęli w bazie są rekordy zgodne z drugim nawiasem to zapytanie zwraca mi tyle rekordów ile jest w tabeli companies. Co tu jest nie tak ![]() -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
W where dałes OR i odnoszę wrażenie ze nie do końca zdajesz sobie sprawę jak on działa w połączenie z AND przed i po
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W where dałes OR i odnoszę wrażenie ze nie do końca zdajesz sobie sprawę jak on działa w połączenie z AND przed i po ![]() Możesz mnie oświecić ![]() -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
skoro tylko to jest prawdziwe: OR ( invoices.payment_date < '2012-8-01' AND invoices.paid = 0 ) AND invoices.companies_id = 1 to tracisz łączenie: invoices.buyer_id = companies.id_companies A jeśli tracisz łączenie, to wyświetlasz wszystkie dane ze wszystkich tabel w iloczynie kartezjańskim. A że określiłeś, warunek na pierwszą tabelą invoices.companies_id = 1 wiec iloczyn kartezjanski ogranicza się do wszystkick rekordów z tabeli drugiej + spełaniających warunek z tabeli pierwszej ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
A nie powinno byc tak?
Ten post edytował maly_swd 27.06.2012, 20:24:30 -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
skowron-line... Jeśli nie jesteś pewien arytmetyki Boole'a lub wychodzą Ci głupoty bo na tym samym poziomie użyłeś AND i OR, to dla pewności obejmij co trzeba w nawiasy, a zobaczysz różnicę. Weź sobie dla pewności strzel
a b c d 0 0 0 0 1 0 0 0 ......... 0 1 1 1 1 1 1 1 jako zadanie domowe a AND b OR c AND d (a AND b) OR (c AND d) ((a AND b) OR c) AND d i inne kombinacje nawiasów, a zobaczysz którą wersję tak naprawdę wysmażyłeś oraz o którą Ci chodziło ;) -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
skowron-line... Jeśli nie jesteś pewien arytmetyki Boole'a lub wychodzą Ci głupoty bo na tym samym poziomie użyłeś AND i OR, to dla pewności obejmij co trzeba w nawiasy, a zobaczysz różnicę. Weź sobie dla pewności strzel a b c d 0 0 0 0 1 0 0 0 ......... 0 1 1 1 1 1 1 1 jako zadanie domowe a AND b OR c AND d (a AND ![]() ((a AND ![]() i inne kombinacje nawiasów, a zobaczysz którą wersję tak naprawdę wysmażyłeś oraz o którą Ci chodziło ![]() @thek szacun odpowiedz godna moda. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:02 |