Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak polaczyc 2 tabele...
snipe
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 5.10.2005
Skąd: Opole/Chorzów

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


Mam dwie tabele:

  1. --
  2. -- Struktura tabeli dla `osoby`
  3. --
  4.  
  5. CREATE TABLE `osoby` (
  6. `id_osoby` int(11) NOT NULL AUTO_INCREMENT,
  7. `user_name` varchar(20) NOT NULL DEFAULT '',
  8. `user_password` varchar(50) NOT NULL DEFAULT '',
  9. `data_zalozenia` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  10. `active` enum('y','n') NOT NULL DEFAULT 'n',
  11. `ban` enum('n','y') NOT NULL DEFAULT 'n',
  12. `plec` enum('m','k') NOT NULL DEFAULT 'm',
  13. `wzrost` varchar(7) NOT NULL DEFAULT '',
  14. `rok_ur` varchar(4) NOT NULL DEFAULT '',
  15. `miejscowosc` varchar(30) NOT NULL DEFAULT '',
  16. `opis` varchar(160) NOT NULL DEFAULT '',
  17. `email` varchar(50) NOT NULL DEFAULT '',
  18. `nr_gg` varchar(7) DEFAULT NULL,
  19. `nr_tlen` varchar(50) DEFAULT NULL,
  20. PRIMARY KEY (`id_osoby`),
  21. UNIQUE KEY `user_name` (`user_name`)
  22. ) TYPE=MyISAM;
  23.  
  24.  
  25. --
  26. -- Struktura tabeli dla `zdjecia`
  27. --
  28.  
  29. CREATE TABLE `zdjecia` (
  30. `id_zdjecia` int(11) NOT NULL AUTO_INCREMENT,
  31. `id_osoby` int(11) NOT NULL DEFAULT '0',
  32. `nazwa` varchar(20) NOT NULL DEFAULT '',
  33. `domyslnie` enum('y','n') NOT NULL DEFAULT 'n',
  34. `opis` varchar(160) NOT NULL DEFAULT '',
  35. PRIMARY KEY (`id_zdjecia`),
  36. KEY `id_osoby` (`id_osoby`)
  37. ) TYPE=MyISAM;


I chcialbym wydobyc niektore dane z tabeli oraz wszystkie fotki przypisane do jednej osoby (po jej id), daje takie zapytanie:

  1. SELECT osoby.id_osoby, osoby.plec, osoby.user_name, osoby.miejscowosc, osoby.opis, osoby.rok_ur, zdjecia.nazwa
  2. FROM `osoby`, `zdjecia` WHERE osoby.id_osoby=zdjecia.id_osoby AND osoby.id_osoby='1' AND osoby.active='y';


i wywala mi np.:
*************************** 1. row ***************************
id_osoby: 1
plec: m
user_name: ddd
miejscowosc: Warsaw
opis:
rok_ur: 1989
nazwa: foto.jpg
*************************** 2. row ***************************
id_osoby: 1
plec: m
user_name: ddd
miejscowosc: Warsaw
opis:
rok_ur: 1989
nazwa: foto.jpg
2 rows in set (0.00 sec)

A ja chcialbym aby wszystkie nazwy fotek byly w jednym wierszu(rekordzie). Jak to zrobic??
ps. jestem poczatkujacy w mysql :]

Z gory dziekuje za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
snipe
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 5.10.2005
Skąd: Opole/Chorzów

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


Cytat(SongoQ @ 2005-10-05 11:11:39)
Z tego co zrozumialem to chesz dokladac jako kolejne tabele w from. Max mozna tak uzyc 5 bo pozniej wydajnosc zapytania spada. Takie podejscie do tego problemu jest nieoptymalne.

SongoQ, chodzi mi o to ze np bedzie mi wyswietlac dane osobowe i fotki do tych danych np.

NIE TAK!
*************************** 1. row ***************************
id_osoby: 1
plec: m
user_name: ddd
miejscowosc: Warsaw
opis:
rok_ur: 1989
nazwa: foto.jpg
*************************** 2. row ***************************
id_osoby: 1
plec: m
user_name: ddd
miejscowosc: Warsaw
opis:
rok_ur: 1989
nazwa: foto2.jpg
*************************** 3. row ***************************
id_osoby: 1
plec: m
user_name: ddd
miejscowosc: Warsaw
opis:
rok_ur: 1989
nazwa: foto3.jpg
3 rows in set (0.23 sec)

Ale TAK!!
*************************** 1. row ***************************
id_osoby: 1
plec: m
user_name: ddd
miejscowosc: Warsaw
opis:
rok_ur: 1989
nazwa: foto.jpg,foto1.jpg,foto2.jpg


Chodzi mi o mniej wiecej cos takiego, da sie to zrobic??
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: 4.10.2025 - 00:07