![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam takie oto bazy.
I do tego zapytanie:
I przy 2500 rekordów to zapytanie trwa 1700ms... Aż boję się, jak będę miał kilkanaście tysięcy bo tak mam, nawet do 20 tysięcy rekordów... Czy da się jakoś to optymalnie "zapytać"? Proszę o pomoc, oczywiście płatną jeśli zajdzie taka potrzeba ![]() -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
yy..... ale po co ci tam podzapytanie i to z UNION na dodatek? Nie umiesz zwykłego OR w warunku dac?
-------------------- "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: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Niestety, zapytanie:
nie działa ;/ -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
No tak, miałem przed chwilą ten sam problem
![]() W postgresql to działa jak coś;P |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Heh, ale jak to zrobić w mysql...
Bo nie wiem czy dam radę teraz przesiąść się na inną bazę danych;/ -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
OR[/b] mapa FROM miasta WHERE nacja='.$Session->gracz['nacja'].'
.... co to jest? Zajrzyj do manuala do składni SELECT i zobacz jak sie robi OR w where.... I poraz kolejny sie pytam: po co ci to podzapytanie?? Ono jest zbędne.... WHERE i OR ma byc w głównym zapytaniu... edit: sorka, nie dolukalem, że ty latasz po różnych tabelach. W takim wypadku łączysz tabele przez LEFT JOIN i nadal ma być bez podzapytania ![]()
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
nospor, ale jak wyciągnąć numery mapek z tabeli danejendostek i miasta aby wyciągnąć wszystkie jednostki które znajdują sie na tych mapkach?
-------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No przecież mówie: left join
SELECT * FROM danejednostek left join miasta on (miasta.nacja='.$Session->gracz['nacja'].' and danejednostek.mapa=miasta.mapa) WHERE danejednostek.nacjaJednostki ='. $Session->gracz['nacja'].' or miasta.mapa is not null
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
dałem takie zapytanie...
i otrzymałem coś takiego...
Dlaczego dla niektórych jednostek nie pokazuje mi id_gracza? Sprawdzałem, id tych graczy jest w bazie danych. -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1) Albo tabela miasta ma pole idGracza i akurat ci nadpisuje to id z głównej tabeli
2) Albo poprostu nie masz w bazie tego ustawionego Innych możliwości nie ma -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
No tak, mam ta tabela idGracza, ale jak to wykluczyć z wyników zapytania?
-------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Masz niezły burdel w tych tabelach....
Co do problemu: to pobieraj tylko z tabeli danejjednostek, bo tylko to ciebie interesuje przeciez $statement='SELECT danejednostek.* FROM danejednostek -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
I tak
![]() Zapytanie:
nie respektuje mi warunku danejednostek.zanurzenie=0 ani danejednostek.urlop =0 Czyli wyciąga mi dane nawet te, których nie chcę wyciągać ![]() Dlaczego po WHERE nic nie respektuje? Gdzie mam wstawić warunki do ograniczenia danych wyciąganych z mysql? Łopatologicznie myśląc zapytanie wyciąga jednostki: gdzie nacja jest równa nacji gracza i mapa jednostki jest równa mapie miasta... A ja chcę wyciągnąć wszystkie jednostki z mapek, na których stoi ( przynajmniej jedna jednostka tej samej nacji co gracza LUB jakiekolwiek miasto tej samej nacji co gracza ). -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
To nie to... nadal wyciąga dane z zanurzenie=1...a nie powinno
Podbijam post gdyż chciałbym poznać rozwiązanie ![]() Jak wyciągnąć dane z jednej tabeli biorąc pod uwagę dane z tej jednej i z drugiej jako warunki... nospor, zajrzyj tu jeszcze raz:) please ![]() Już jestem/jesteś tak blisko! -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat nie respektuje mi warunku danejednostek.zanurzenie=0 ani danejednostek.urlop =0 Ponieważ masz OR ... or miasta.mapa is not null ten or powoduje anulowanie tamtych warunków w AND. Jak chcesz by były i one brane pod uwagę to dołóż je do OR ... or miasta.mapa is not null and danejednostek.urlop =0 AND danejednostek.zanurzenie=0 Ot i cała filozofia - prosta logika
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
No nadal nie to...
Wrzucam zapytanie:
i nadal wyciąga mi dane z nacjaJednostki=1 i nacjaJednostki=2, z zanurzenie=1 itp... Powoli rezygnuję... Wyciąga wszystkie dane... nospor, ja myślę nad tym zapytaniem już długi czas... Może tobie wydaje się że ja idę na łatwiznę... ale tak nie jest... Gdzie mam szukać pomocy? -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No nie wytrzyma....
Ja ci kazałem dodać coś do OR, tak? Tak. Czy ja ci w którymś miejscu kazałem usuwać z innego miejsca coś? Nie! Czytaj proszę to co ci piszą. Jak ci mowią: dodac cos tu, to znaczy dodać coś tu a nie dodaj coś tu a zabierz stamtąd... -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
No niestety...
moje zapytanie to:
Zapytanie nie działa... wyciąga mi wszystkie, nawet te których ma nie wyciągać... Szkoda że tak trudno wpisać całe zapytanie... Szkoda że tak trudno sprawdzić u Was na localu czy to co podajecie działa... Powyższe zapytanie wyciąga dane wszystkich jednostek... zresztą...ja to już pisałem. Dziękuję za bezowocną pomoc ![]() -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
spróbuj jeszcze nie:
OR miasta.mapa IS NOT NULL AND danejednostek.idGracza!=0 AND danejednostek.urlop=0 AND danejednostek.zanurzenie=0 a OR (miasta.mapa IS NOT NULL AND danejednostek.idGracza!=0 AND danejednostek.urlop=0 AND danejednostek.zanurzenie=0) Ale to nie powinno mieć znaczenia. To zapytanie nie ma prawa pobierać ci wszystkiego, bo jasno i czytelnie określają to warunki Spróbuj jeszcze tak
Jeśli i to będzie ci zwracać zanurzenie =1 to albo ja jestem ślepy, albo ty coś kręcisz ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 11:17 |