Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] zapytanie z trzech tabel
eeoo
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 1.03.2006

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


Mam trzy tabele formularz, up, uzytkownik
formularz:
idzgloszenia, IP, data, rodzaj, uwagi, iduser, idup

up:
idup, adres, up

uzytkownik:
ID, imie, nazwisko, login, haslo, idup

zapytanie:
select idzgloszenia, data, rodzaj, uwagi, uzytkownik.login, up.up from formularz, uzytkownik, up;

daje wynik z powtarzajacymi sie idzgloszenia help
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Foxx
post
Post #2





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Nie wiem czy potrafię Ci pomóc. Po pierwsze zrobiłbym te tabele tak:
  1. CREATE TABLE `formularz` (
  2. `id` int( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `IP` varchar( 100 ) NOT NULL DEFAULT '',
  4. `data` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  5. `rodzaj` varchar( 50 ) NOT NULL DEFAULT '',
  6. `uwagi` longtext NOT NULL ,
  7. `iduser` int( 3 ) NOT NULL DEFAULT '0',
  8. `idup` int( 11 ) NOT NULL DEFAULT '0',
  9. PRIMARY KEY ( `id` )
  10. ) TYPE = MYISAM ;
  11.  
  12. CREATE TABLE `up` (
  13. `id` int( 11 ) NOT NULL AUTO_INCREMENT ,
  14. `adres` text NOT NULL ,
  15. `up` varchar( 20 ) NOT NULL DEFAULT '',
  16. PRIMARY KEY ( `id` )
  17. ) TYPE = MYISAM ;
  18.  
  19. CREATE TABLE `uzytkownik` (
  20. `id` int( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
  21. `imie` varchar( 40 ) NOT NULL DEFAULT '',
  22. `nazwisko` varchar( 40 ) NOT NULL DEFAULT '',
  23. `login` varchar( 20 ) NOT NULL DEFAULT '',
  24. `password` varchar( 20 ) NOT NULL DEFAULT '',
  25. `idup` int( 2 ) NOT NULL DEFAULT '0',
  26. PRIMARY KEY ( `id` )
  27. ) TYPE = MYISAM ;


usunąłem m.in. AUTO_INCREMENT=1 bo inaczej wszystkie rekordy w polu id miały wartość 1. Szczerze mówiąc nie mogę dojść dlaczego, powinno to chyba oznaczać że następny rekord dostanie wartość 1 ale nie rozumiem dlaczego dalej nie jest 2,3,... - ktoś by mógłby mnie oświecić?
Po drugie
  1. SELECT a.id, a.IP, a.DATA, a.rodzaj, a.uwagi, b.login, c.up
  2. FROM formularz
  3. AS a, uzytkownik AS b, up AS c WHERE a.iduser=b.id AND a.idup=c.id;

Powinno działać jeżeli dobrze zrozumiałem Twoje zamiary po tym jak wygląda baza. To znaczy wybierasz wszystkie wpisy z tabeli "formularz" przy czym zamiast identyfikatorów użytkownika i up chcesz mieć login użytkownika i samo up.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 19:52