Jak stworzyć z dwoch tabel trzecia

Odpowiedz Nowy wątek
2014-11-01 18:49

Rejestracja: 5 lat temu

Ostatnio: 5 lat temu

0

Witam
Jestem początkujący i mam pytanie odnośnie takiej kwestii a mianowicie mam kilka tabel i teraz chciałbym z dwóch tabel w których są kolumny . Tabela 1 Pracownik w niej pracownikId adres miasto telefon , tabela 2 Dzial w niej stanowisko - nazwa działu . W pierwszej tabeli PracownikID jest Primary Key w tabelii Dzal stanowisko jest Primary Key . Chciałbym żeby z tych dwóch tabel powstała tabela trzecia o nazwie Dane_pracownika i w niej żeby były kolumny PracownikID i stanowisko . Chciałbym żeby te dwie kolumny były Foreign Key . I tu mam problem bo za bardzo nie wiem jak to zrobić . Próbowałem tak

mój Kod :

CREATE TABLE Dane_pracownika
(
SELECT pracownik.pracownikID, Dzial.stanowisko
From pracownik , dzial ,
WHERE ADD FOREIGN KEY(pracownikID, stanowisko) ,
REFERENCES SKILLSET Dane_pracownika (pracownikID, stanowisko)
) Engine=InnoDB
;

Gdzie robię błąd . Czy jeżeli tworzę trzecia tabele z dwóch tabel gdzie kolumny są PK to czy muszę je tworzyć jako Foreign Key , czy jest to z automatu ? Za pomoc i wytłumaczenie śliczne dzięki

Pozostało 580 znaków

2014-11-01 19:03

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

Lokalizacja: Wrocław

0

Okropnie zagmatwane. Rozumiem, że chcesz mieć sytuację, w której pracownik może mieć kilka stanowisk ( i stanowisko może być nadane kilku pracownikom) czyli relację wiele do wielu? Jeśli tak to tworzysz trzecią tabelę z dwoma kolumnami (kluczami obcymi) do istniejących tabel. Następnie wypełniasz danymi, ale nie rozumiem jak chcesz to robić na podwstawie tych dwóch istniejących tabel. Każdy pracownik do wszystkich stanowisk?


"There are people who actually like programming. I don't understand why they like programming."
Rasmus Lerdorf

Pozostało 580 znaków

2014-11-01 20:06

Rejestracja: 5 lat temu

Ostatnio: 5 lat temu

0

Dobra możne trochę namieszałem ciężko jest mi czasami wytłumaczyć (przepraszam)
Wiec tak są 2 tabele pracownik , Tabela Umiejętności ma powstać tabela zestawienie umiejętności gdzie pracownik ID (fK)
Umiejętności (fk) maja być Foreign Key .

Tabela 1
pracownik (nazwa tabeli )
pracownik ID (PK)
Nazwisko
adres
miasto
Kod pocztowy
telefon
dział
wynagrodzenie
wiek

Tabela 2
Tabela_Umiejętności (nazwa tabeli )
Kod_Umiejetnosci (pk)
Umiejętności

Tabela 3
zestawienie_umiejętności (nazwa tabeli )
pracownik ID (fK)
kod_Umiejętności (fk)

i moj kod :
CREATE TABLE zestawienie_umiejętności
(
SELECT pracownik.pracownik ID, Tabela_Umiejętności.Kod_Umiejetnosci
From pracownik , Tabela_Umiejętności,
WHERE ADD FOREIGN KEY(pracownik ID, Kod_Umiejetnosci ) ,
REFERENCES SKILLSET (pracownik, Tabela_Umiejętności)
) Engine=InnoDB ;

Może tak będzie lepiej .
Aaaa Czy jeżeli tworzę trzecia tabele z dwóch tabel gdzie kolumny są PK to czy muszę je tworzyć jako Foreign Key , czy jest to z automatu ?

edytowany 1x, ostatnio: przembond, 2014-11-01 20:09

Pozostało 580 znaków

2014-11-01 20:39

Rejestracja: 7 lat temu

Ostatnio: 1 godzina temu

0

a jak dojdzie nowy pracownik to usuniesz tą tabelę i będziesz ją na nowo tworzył?
Błąd masz w zapytaniu ale oczywiście sprawdzałeś w dokumentacji... http://dev.mysql.com/doc/refman/5.0/en/create-table-select.html
Pytanie moje (pierwsze) i poprzednika wynika z chęci dowiedzenia się dlaczego takie działanie podejmujesz ponieważ ja (i pewnie mój poprzednik) śmiem sądzić, że działanie to jest zbędne i/lub nieprawidłowe


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
edytowany 1x, ostatnio: abrakadaber, 2014-11-01 20:40

Pozostało 580 znaków

2014-11-01 21:30

Rejestracja: 5 lat temu

Ostatnio: 5 lat temu

0

Podejrzewam ze jest coś źle bo mówiłem na wstępie ze jestem początkujący. a możesz mi poradzić jak to powinno wyglądać

Pozostało 580 znaków

2014-11-01 22:08

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

Lokalizacja: Wrocław

0
przembond napisał(a):

Tabela 3
zestawienie_umiejętności (nazwa tabeli )
pracownik ID (fK)
kod_Umiejętności (fk)

To jest OK. Utwórz taką tabelę, pustą, z dwiema kolumnami, kluczami obcymi do podanych przez Ciebie dwóch tabel.

Następnie wypełniaj ją danymi, tylko - nie możesz tego zrobić na podstawie poprzednich tabel bo w nich nie ma takiej zależności. Właśnie teraz ją tworzysz (tą zależność), zatem po utworzeniu tabeli powinieneś ją wypełnić informacjami.


"There are people who actually like programming. I don't understand why they like programming."
Rasmus Lerdorf

Pozostało 580 znaków

2014-11-02 13:16

Rejestracja: 7 lat temu

Ostatnio: 1 godzina temu

0
przembond napisał(a):

Podejrzewam ze jest coś źle bo mówiłem na wstępie ze jestem początkujący. a możesz mi poradzić jak to powinno wyglądać

przecież masz linka w moim poprzednim poście do manuala jak to powinno wyglądać. Jak nie potrafisz wg instrukcji zrobić to ja nie potrafię Ci pomóc


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0