W jednej tabeli wiele kluczów obcych - SELECT JOIN USING




leonidas12308.09.2008 15:10:38
#
Dołączył: 15.11.2007

Witam:) Mam stworzony przy pomocy PHP pewną bazę danych a w niej tabele:

$query ='CREATE TABLE zajecie ('. 'id_zajecie INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,'. 'id_sala INTEGER UNSIGNED NOT NULL,'. 'id_przedmiot INTEGER UNSIGNED NOT NULL,'. 'id_nauczyciel INTEGER UNSIGNED NOT NULL,'. 'id_klasa INTEGER UNSIGNED NOT NULL,'. 'dzien_tyg VARCHAR(15) NOT NULL,'. 'zmiana INTEGER UNSIGNED NOT NULL,'. 'data_dod DATETIME NOT NULL,'. 'PRIMARY KEY(id_zajecie),'. 'INDEX zajecie_FKIndex3(id_przedmiot),'. 'INDEX zajecie_FKIndex2(id_nauczyciel),'. 'INDEX zajecie_FKIndex5(id_klasa),'. 'INDEX zajecie_FKIndex4(id_sala))'; $result = mysql_query($query) or die ('nie mozna stworzyc tabeli: zajecie');

$query = 'CREATE TABLE sala ('. 'id_sala INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,'. 'symbol VARCHAR(6) NOT NULL,'. 'PRIMARY KEY(id_sala) )'; $result = mysql_query($query) or die ('nie mozna stworzyc tabeli: sala');

$query ='CREATE TABLE przedmiot ('. 'id_przedmiot INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,'. 'nazwa VARCHAR(45) NOT NULL,'. //'liczba_godz INTEGER UNSIGNED NOT NULL,'. 'PRIMARY KEY(id_przedmiot))'; $result = mysql_query($query) or die ('nie mozna stworzyc tabeli: przedmiot');

$query ='CREATE TABLE nauczyciel ('. 'id_nauczyciel INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,'. 'id_stanowisko INTEGER UNSIGNED NOT NULL,'. 'imie VARCHAR(20) NOT NULL,'. 'nazwisko VARCHAR(20) NOT NULL,'. 'tytul_nauk VARCHAR(20) NULL,'. 'pesel VARCHAR(13) NOT NULL,'. 'telefon VARCHAR(12) NULL,'. 'email VARCHAR(50) NULL,'. 'PRIMARY KEY(id_nauczyciel),'. 'INDEX nauczyciel_FKIndex1(id_stanowisko))'; $result = mysql_query($query) or die ('nie mozna stworzyc tabeli: nauczyciel');

$query ='CREATE TABLE klasa ('. 'id_klasa INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,'. 'id_nauczyciel INTEGER UNSIGNED NOT NULL,'. 'rok INTEGER UNSIGNED NOT NULL,'. 'symbol VARCHAR(3) NOT NULL,'. 'rocznik INTEGER UNSIGNED NOT NULL,'. 'PRIMARY KEY(id_klasa),'. 'INDEX klasa_FKIndex1(id_nauczyciel))'; $result = mysql_query($query) or die ('nie mozna stworzyc tabeli: klasa');

Opuściłem parę niepotrzebnych tabel:). Problem polega na tym że nie wiem jak sformułować zapytanie aby baza zwróciła mi dane z tabeli zajecie oraz wszystkich powiązanych z nią. Próbowałem np.:

$query = "SELECT s.symbol, data_dod, k.symbol, k.rok FROM zajecie z ". "INNER JOIN (sala s, nauczyciel n, przedmiot p, klasa k)". " USING(s.id_sala, n.id_nauczyciel, p.id_przedmiot, k.id_klasa) ". " ORDER BY data_dod"; $result = mysql_query($query);

I wywala błąd: Something is wrong in your syntax obok '(sala s, nauczyciel n, przedmiot p, klasa k) USING(s.id_sala, n.' w linii 1.

doogi15.12.2008 19:44:43
#
Dołączył: 12.09.2005

A czy przypadkiem zeby przypisac alias nazwie tabeli nie trzeba uzyc AS? Moge sie mylic, ale wg mnie powinno byc raczej:
Parse error: syntax error, unexpected ';', expecting T_PAAMAYIM_NEKUDOTAYIM in /home/binsoft/ftp/howtocode/cfg/functions.php(511) : eval()'d code on line 1




Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?