Cześć.
Nie zakładam nowego wątku, bo wygląda mi na to, że moje pytanie jest pokrewne do tematu tego wątku.
Robię aplikację webową do pracy, w której w tabeli "pacjent" jako klucze obce używam dwa razy id z innej tabeli - "personel" (jest to 2x id lekarza z tabelki "personel", bo jeden lekarz kieruje pacjenta a drugi go kwalifikuje). Na liście zabiegów mają pojawić się zamiast id lekarzy ich nazwiska. Jak zrobić SELECT, aby uzyskać nazwiska tych dwóch lekarzy?
Struktura tabeli dla tabeli `pacjent`
--
CREATE TABLE IF NOT EXISTS `pacjent` (
`id_pac` int(5) NOT NULL AUTO_INCREMENT,
`pac_nazwisko` varchar(50) COLLATE utf8_polish_ci NOT NULL,
`pac_imie` varchar(20) COLLATE utf8_polish_ci NOT NULL,
`id_plec` int(1) NOT NULL,
`pesel` varchar(11) COLLATE utf8_polish_ci NOT NULL,
`ks_gl_nr` int(3) NOT NULL,
`ks_gl_rok` int(4) NOT NULL,
`id_dok` char(1) COLLATE utf8_polish_ci NOT NULL,
`dok_toz_nr` char(20) COLLATE utf8_polish_ci NOT NULL,
`data_zab`
date NOT
NULL, `id_tryb_lecz` int(1) NOT NULL,
`id_jos_kier` int(2) NOT NULL,
`id_personel_lek_kier` int(2) NOT NULL,
`id_personel_lek_kwal` int(2) NOT NULL,
`id_icd9` int(5) NOT NULL,
`opis_dod` text COLLATE utf8_polish_ci NOT NULL,
`uwagi` text COLLATE utf8_polish_ci NOT NULL,
`id_status` int(1) NOT NULL,
KEY `id_plec`
(`id_plec`
), KEY `id_rodz_lecz`
(`id_tryb_lecz`
), KEY `id_jos_kier`
(`id_jos_kier`
), KEY `id_lek_kier`
(`id_personel_lek_kier`
), KEY `id_icd9`
(`id_icd9`
), KEY `id_status`
(`id_status`
) )
Struktura tabeli dla tabeli `personel`
--
CREATE TABLE IF NOT EXISTS `personel` (
`id_personel` int(2) NOT NULL AUTO_INCREMENT,
`per_imie` char(20) COLLATE utf8_polish_ci NOT NULL,
`per_nazwisko` char(50) COLLATE utf8_polish_ci NOT NULL,
`nr_prawa` char(10) COLLATE utf8_polish_ci NOT NULL,
`id_jos_kier` int(2) NOT NULL,
`id_personel_typ` int(1) NOT NULL,
PRIMARY
KEY (`id_personel`
), KEY `id_jos_kier`
(`id_jos_kier`
), KEY `id_jos_kier_2`
(`id_jos_kier`
), KEY `id_grupyz`
(`id_personel_typ`
) )
Na tą chwilę używam inner/left join i odpowiednie klucze obce ale w ten sposób potrafię wyciągnąć tylko jednego lekarza.