Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> mulące zapytanie... Jak to rozwiązać
miccom
post 12.04.2013, 11:09:23
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.

  1. -- phpMyAdmin SQL Dump
  2. -- version 3.3.10
  3. -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
  4. --
  5. -- Host: localhost
  6. -- Czas wygenerowania: 12 Kwi 2013, 11:55
  7. -- Wersja serwera: 5.1.56
  8. -- Wersja PHP: 5.3.6
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12.  
  13. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  14. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  15. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  16. /*!40101 SET NAMES utf8 */;
  17.  
  18. -- --------------------------------------------------------
  19.  
  20. --
  21. -- Struktura tabeli dla `danejednostek`
  22. --
  23.  
  24. CREATE TABLE IF NOT EXISTS `danejednostek` (
  25. `idDaneJednostek` int(11) NOT NULL AUTO_INCREMENT,
  26. `idGracza` int(11) NOT NULL,
  27. `user` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  28. `idJednostki` int(11) NOT NULL COMMENT '1: piechota; 2: lotnictwo; 3: pancerne; 4: przeciwlotnicze; 5: flota; 6: artyleria;',
  29. `nazwaJednostki` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  30. `nacjaJednostki` int(11) NOT NULL COMMENT '1:polak, 2:niemiec',
  31. `mapa` int(11) NOT NULL,
  32. PRIMARY KEY (`idDaneJednostek`)
  33. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2820 ;
  34.  
  35. --
  36. -- Zrzut danych tabeli `danejednostek`
  37. --
  38.  
  39. INSERT INTO `danejednostek` (`idDaneJednostek`, `idGracza`, `user`, `idJednostki`, `nazwaJednostki`, `nacjaJednostki`, `mapa`) VALUES
  40. (1430, 1, 'system1', 4, '37mm FlaKzwilling 43 L / 89', 2, 4),
  41. (2, 2, 'system2', 6, '105mm M2A1 L / 22.5', 1, 5),
  42. (3, 3, 'system3', 4, 'Flakpanzer IV Wirbelwind', 2, 4),
  43. (4, 4, 'system4', 1, 'Oddział ciężkiej piechoty', 1, 5),
  44. (5, 5, 'system5', 2, 'MiG-3', 1, 7);


  1. -- phpMyAdmin SQL Dump
  2. -- version 3.3.10
  3. -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
  4. --
  5. -- Host: localhost
  6. -- Czas wygenerowania: 12 Kwi 2013, 12:02
  7. -- Wersja serwera: 5.1.56
  8. -- Wersja PHP: 5.3.6
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12.  
  13. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  14. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  15. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  16. /*!40101 SET NAMES utf8 */;
  17.  
  18. -- --------------------------------------------------------
  19.  
  20. --
  21. -- Struktura tabeli dla `miasta`
  22. --
  23.  
  24. CREATE TABLE IF NOT EXISTS `miasta` (
  25. `idGracza` int(11) NOT NULL,
  26. `mapa` int(11) NOT NULL,
  27. `nrHexa` int(11) NOT NULL,
  28. `nacja` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  29. `urlop` datetime NOT NULL,
  30. `ochrona` datetime NOT NULL,
  31. `poz_obrony` int(11) NOT NULL,
  32. `nazwa` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  33. `id_miasta` int(11) NOT NULL AUTO_INCREMENT,
  34. PRIMARY KEY (`id_miasta`),
  35. KEY `mapa` (`mapa`,`nacja`),
  36. KEY `nrHexa` (`nrHexa`,`nacja`),
  37. KEY `mapa_2` (`mapa`,`nrHexa`)
  38. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=34 ;
  39.  
  40. --
  41. -- Zrzut danych tabeli `miasta`
  42. --
  43.  
  44. INSERT INTO `miasta` (`idGracza`, `mapa`, `nrHexa`, `nacja`, `urlop`, `ochrona`, `poz_obrony`, `nazwa`, `id_miasta`) VALUES
  45. (0, 62, 6017, '2', '0000-00-00 00:00:00', '0000-00-00 00:00:00', 100, 'BERLIN', 1),
  46. (22, 124, 2308, '2', '0000-00-00 00:00:00', '2013-02-24 23:56:48', 100, 'miccom1', 2),
  47. (12, 143, 13903, '1', '0000-00-00 00:00:00', '2013-02-17 17:53:04', 100, 'miccom2', 3),
  48. (5, 61, 6601, '2', '0000-00-00 00:00:00', '2013-03-27 15:23:28', 100, 'miccom3', 23),
  49. (38, 142, 13895, '1', '0000-00-00 00:00:00', '2013-02-18 10:37:19', 100, 'miccom4', 5),
  50. (0, 0, 0, NULL, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 100, 'WARSZAWA', 22);
  51.  



I do tego zapytanie:
  1. SELECT *
  2. FROM danejednostek
  3. WHERE mapa
  4. IN (
  5. SELECT mapa
  6. FROM danejednostek
  7. WHERE nacjaJednostki ='. $Session->gracz['nacja'].' UNION SELECT mapa FROM miasta WHERE nacja='.$Session->gracz['nacja'].'
  8. )';


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 smile.gif


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
nospor
post 12.04.2013, 11:15:20
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

Go to the top of the page
+Quote Post
miccom
post 12.04.2013, 11:19:10
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Niestety, zapytanie:
  1. SELECT *
  2. FROM danejednostek
  3. WHERE mapa
  4. IN (
  5. SELECT mapa
  6. FROM danejednostek
  7. WHERE nacjaJednostki ='. $Session->gracz['nacja'].' [b]OR[/b] mapa FROM miasta WHERE nacja='.$Session->gracz['nacja'].'
  8. )';

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!
Go to the top of the page
+Quote Post
matiit
post 12.04.2013, 11:21:19
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 smile.gif
W postgresql to działa jak coś;P
Go to the top of the page
+Quote Post
miccom
post 12.04.2013, 11:32:54
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!
Go to the top of the page
+Quote Post
nospor
post 12.04.2013, 11:42:06
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 smile.gif
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

Go to the top of the page
+Quote Post
miccom
post 12.04.2013, 11:45:21
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!
Go to the top of the page
+Quote Post
nospor
post 12.04.2013, 11:49:09
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

Go to the top of the page
+Quote Post
miccom
post 12.04.2013, 13:44:38
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...
  1. $statement='SELECT *
  2. FROM danejednostek
  3. left join miasta on (miasta.nacja=2 and danejednostek.mapa=miasta.mapa)
  4. WHERE danejednostek.idGracza!=0 AND danejednostek.urlop =0 AND (danejednostek.zanurzenie=0 OR (danejednostek.zanurzenie=1 AND danejednostek.idGracza=1 ) ) AND danejednostek.nacjaJednostki =2 or miasta.mapa is not null';
  5.  
  6. $result = mysql_query($statement);
  7. //$dane_jednostek = array();
  8. $liczba_wierszy = mysql_num_rows($result);
  9. while($wyniki=mysql_fetch_array($result)){
  10. echo "jednostka nr =".$wyniki['idDaneJednostek'].", odgracza=".$wyniki['idGracza']."<br>";
  11. }

i otrzymałem coś takiego...

  1. jednostka nr =3, id_gracza=20
  2. jednostka nr =3, id_gracza=39
  3. jednostka nr =12, id_gracza=
  4. jednostka nr =13, id_gracza=20
  5. jednostka nr =13, id_gracza=39
  6. jednostka nr =15, id_gracza=
  7. jednostka nr =790, id_gracza=5
  8. jednostka nr =37, id_gracza=20
  9. jednostka nr =37, id_gracza=39
  10. jednostka nr =38, id_gracza=30
  11. jednostka nr =38, id_gracza=42
  12. jednostka nr =44, id_gracza=20
  13. jednostka nr =44, id_gracza=39
  14. jednostka nr =50, id_gracza=5
  15. jednostka nr =52, id_gracza=
  16. jednostka nr =58, id_gracza=
  17. jednostka nr =60, id_gracza=20
  18. jednostka nr =60, id_gracza=39
  19. jednostka nr =63, id_gracza=20
  20. jednostka nr =63, id_gracza=39
  21. jednostka nr =64, id_gracza=20
  22. jednostka nr =64, id_gracza=39
  23. jednostka nr =1428, id_gracza=1
  24. jednostka nr =70, id_gracza=20
  25. jednostka nr =70, id_gracza=39
  26. jednostka nr =85, id_gracza=
  27. jednostka nr =86, id_gracza=22
  28. jednostka nr =87, id_gracza=20


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!
Go to the top of the page
+Quote Post
nospor
post 12.04.2013, 13:47:45
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

Go to the top of the page
+Quote Post
miccom
post 12.04.2013, 13:49:49
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!
Go to the top of the page
+Quote Post
nospor
post 12.04.2013, 14:04:24
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

Go to the top of the page
+Quote Post
miccom
post 12.04.2013, 16:45:22
Post #13





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


I tak smile.gif
Zapytanie:
  1. $statement ='SELECT danejednostek.*
  2. FROM danejednostek
  3. left join miasta on (miasta.nacja='.$Session->gracz['nacja'].' and danejednostek.mapa=miasta.mapa)
  4. WHERE danejednostek.idGracza!=0 AND danejednostek.urlop =0 AND danejednostek.zanurzenie=0 AND danejednostek.nacjaJednostki ='. $Session->gracz['nacja'].' or miasta.mapa is not null';


nie respektuje mi warunku danejednostek.zanurzenie=0 ani danejednostek.urlop =0
Czyli wyciąga mi dane nawet te, których nie chcę wyciągać smile.gif
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!
Go to the top of the page
+Quote Post
mmmmmmm
post 12.04.2013, 21:37:59
Post #14





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


  1. $statement ='SELECT danejednostek.*
  2. FROM danejednostek
  3. left join miasta on (miasta.nacja='.$Session->gracz['nacja'].' and danejednostek.mapa=miasta.mapa)
  4. WHERE (danejednostek.idGracza!=0 AND danejednostek.urlop =0 AND danejednostek.zanurzenie=0 AND danejednostek.nacjaJednostki ='. $Session->gracz['nacja'].') or miasta.mapa is not null';
Go to the top of the page
+Quote Post
miccom
post 13.04.2013, 18:46:46
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 smile.gif
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 smile.gif
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!
Go to the top of the page
+Quote Post
nospor
post 13.04.2013, 19:57:15
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

Go to the top of the page
+Quote Post
miccom
post 13.04.2013, 20:23:19
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:
  1. SELECT danejednostek. *
  2. FROM danejednostek
  3. LEFT JOIN miasta ON ( miasta.nacja =2
  4. AND danejednostek.mapa = miasta.mapa )
  5. WHERE danejednostek.nacjaJednostki =2
  6. OR miasta.mapa IS NOT NULL
  7. AND danejednostek.idGracza !=0
  8. AND danejednostek.urlop =0
  9. AND danejednostek.zanurzenie =0

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!
Go to the top of the page
+Quote Post
nospor
post 13.04.2013, 20:28:36
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

Go to the top of the page
+Quote Post
miccom
post 13.04.2013, 20:53:05
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:
  1. SELECT danejednostek . *
  2. FROM danejednostek
  3. LEFT JOIN miasta ON ( miasta.nacja=2
  4. AND danejednostek.mapa = miasta.mapa )
  5. WHERE (
  6. danejednostek.idGracza!=0
  7. AND danejednostek.urlop=0
  8. AND danejednostek.zanurzenie=0
  9. AND danejednostek.nacjaJednostki=2
  10. )
  11. OR miasta.mapa IS NOT NULL
  12. AND danejednostek.idGracza!=0
  13. AND danejednostek.urlop=0
  14. AND danejednostek.zanurzenie=0


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 sad.gif





--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
nospor
post 13.04.2013, 21:12:42
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
  1. SELECT danejednostek . *
  2. FROM danejednostek
  3. LEFT JOIN miasta ON ( miasta.nacja=2
  4. AND danejednostek.mapa = miasta.mapa
  5. AND danejednostek.idGracza!=0
  6. AND danejednostek.urlop=0
  7. AND danejednostek.zanurzenie=0
  8. )
  9. WHERE (
  10. danejednostek.idGracza!=0
  11. AND danejednostek.urlop=0
  12. AND danejednostek.zanurzenie=0
  13. AND danejednostek.nacjaJednostki=2
  14. )
  15.  
  16. OR miasta.mapa IS NOT NULL

Jeśli i to będzie ci zwracać zanurzenie =1 to albo ja jestem ślepy, albo ty coś kręcisz smile.gif



--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 11:17