Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]Probelm z kluczami i zapytaniem
Forum PHP.pl > Forum > Przedszkole
gregi1
Pytanie 1 : Jak dodac do istniejacych tabel klucze obce otoz mam:

  1. CREATE TABLE `informacje` (
  2. `id` int(4) NOT NULL AUTO_INCREMENT,
  3. `nazwa_firmy` varchar(100) DEFAULT NULL,
  4. `id_branza` int(5) DEFAULT NULL,
  5. `id_profil` int(5) NOT NULL DEFAULT '0',
  6. `data_dodania` date DEFAULT '0000-00-00',
  7. PRIMARY KEY (`id`),
  8. KEY `id_branza` (`id_branza`),
  9. KEY `id_profil` (`id_profil`)
  10. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=14 ;
  11.  
  12. oraz
  13.  
  14. CREATE TABLE `profil` (
  15. `id` int(5) NOT NULL AUTO_INCREMENT,
  16. `profil` varchar(50) NOT NULL DEFAULT '',
  17. PRIMARY KEY (`id`)
  18. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=5 ;


I chcialbym aby id_profil bylo kluczem obcym do tej tabeli.

Chcialbym takze wyswietlic sobie cala tabele informacje, tylko zeby zamiast liczb z pola id_profil wyswielila mi sie nazwa danego profilu zapisana z tym samym id w drugiej tabeli.

Moje zapytanie wyglada:

select * from informacje inner join profil on informacje.id_profil=profil.id
piaseq
Cytat(gregi1 @ 5.11.2008, 20:42:15 ) *
Pytanie 1 : Jak dodac do istniejacych tabel klucze obce.

I chcialbym aby id_profil bylo kluczem obcym do tej tabeli.

  1. ALTER TABLE `informacje`
  2. ADD CONSTRAINT `profil` FOREIGN KEY (`id_profil`) REFERENCES `profil` (`id`)

Do poprawnego działania kluczy powinieneś zmienić silnik tabel z myisam na innodb.

Cytat(gregi1 @ 5.11.2008, 20:42:15 ) *
Chcialbym takze wyswietlic sobie cala tabele informacje, tylko zeby zamiast liczb z pola id_profil wyswielila mi sie nazwa danego profilu zapisana z tym samym id w drugiej tabeli.

  1. SELECT informacje.id, nazwa_firmy, id_branza, profil, data_dodania FROM `informacje` LEFT JOIN profil ON informacje.id_profil=profil.id
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.