Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Join wykonuje sie na kei.pl a na home.pl nie
Forum PHP.pl > Forum > Bazy danych > MySQL
NoiseMc
Co jest nie tak z tym zapytaniem ze na kei.pl(MySQL 4.0.18) wykonuje sie poprawnie, na moim wlasnym serwerze tez (IIS, MySQL 4.0.18), a na home.pl(MySQL 4.1) nie idzie
  1. SELECT mod.NazwaModulu, mod.LinkModulu
  2.  
  3. FROM ( prawa_dostepu pd
  4. INNER JOIN moduly mod ON pd.IDModulu = mod.IDModulu
  5. )
  6. INNER JOIN uzytkownicy uz ON pd.IDUzytkownika = uz.IDUzytkownika
  7. WHERE uz.IDUzytkownika = 2 AND pd.Dostep > 0


Struktura bazy:
  1. -- --------------------------------------------------------
  2.  
  3. --
  4. -- Struktura tabeli dla `moduly`
  5. --
  6.  
  7. CREATE TABLE `moduly` (
  8. `IDModulu` int(6) NOT NULL AUTO_INCREMENT,
  9. `NazwaModulu` text NOT NULL,
  10. `LinkModulu` text NOT NULL,
  11. PRIMARY KEY (`IDModulu`)
  12. ) TYPE=InnoDB AUTO_INCREMENT=8 ;
  13.  
  14. -- --------------------------------------------------------
  15.  
  16. --
  17. -- Struktura tabeli dla `prawa_dostepu`
  18. --
  19.  
  20. CREATE TABLE `prawa_dostepu` (
  21. `IDPrawa` int(5) NOT NULL AUTO_INCREMENT,
  22. `IDUzytkownika` int(5) NOT NULL DEFAULT '0',
  23. `IDModulu` int(5) NOT NULL DEFAULT '0',
  24. `Dostep` char(1) NOT NULL DEFAULT '',
  25. PRIMARY KEY (`IDPrawa`),
  26. KEY `IDUzytkownika` (`IDUzytkownika`),
  27. KEY `IDModulu` (`IDModulu`),
  28. KEY `Dostep` (`Dostep`)
  29. ) TYPE=InnoDB AUTO_INCREMENT=19 ;
  30.  
  31. -- --------------------------------------------------------
  32.  
  33. --
  34. -- Struktura tabeli dla `uzytkownicy`
  35. --
  36.  
  37. CREATE TABLE `uzytkownicy` (
  38. `IDUzytkownika` int(5) NOT NULL AUTO_INCREMENT,
  39. `Login` varchar(25) NOT NULL DEFAULT '',
  40. `Haslo` varchar(32) NOT NULL DEFAULT '',
  41. `Imie` text NOT NULL,
  42. `Nazwisko` text NOT NULL,
  43. `Aktywny` int(1) NOT NULL DEFAULT '1',
  44. `Uzytkownicy` int(1) NOT NULL DEFAULT '1',
  45. PRIMARY KEY (`IDUzytkownika`),
  46. KEY `Uzytkownicy` (`Uzytkownicy`),
  47. KEY `Aktywny` (`Aktywny`),
  48. KEY `Login` (`Login`),
  49. KEY `Haslo` (`Haslo`)
  50. ) TYPE=InnoDB AUTO_INCREMENT=4 ;


Cytat
Błąd:
  1064: You have an error in your SQL syntax; check the manual that corresponds to your
  MySQL server version for the right syntax to use near 'mod ON pd.IDModulu = mod.IDModulu )
  INNER JOIN uzytkownicy uz ON pd.IDU' at line 1


Admin na home.pl rzekł, ze zapytanie "jakos dziwnie mu wyglada". Nie wiem moze jest niezgodne z jakimis standardami. Dodam, ze po zmianie nazwy aliasu z "mod" na inny wszystko jest OK
SongoQ
Problem jest w tym ze male i duze litery na windzie nie ma znaczenia a na Linuxie jest.

Zmien na male litery wszystko lub daj `tabela`, `pole` i jesli bedzie problem to pisz.
NoiseMc
Zmodyfikowalem zapytanie, zmienilem nazwe aliasu z "mod" na "mo" i dziala blink.gif.
MOD() to funkcja MySQL i stad mogl wziac sie ten blad (znalazlem w manualu w trakcie pisania tego posta)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.