Mam taki pytanie jak powinno wyglądać zapytanie wyciągające dane z 3 tabel bo w jednej tabeli są nastroje i nastroje mogą mieć kilka wpisanych leków i teraz jak powinno wyglądać zapytanie, które wybierze np leki o nazwach vetira i lit, ale tylko takie wpisy gdzie te leki były wpisany w ten sam nastrój.próbowałem takiego czegoś.
SELECT * FROM `nastroj` join przekierowanie_lekow on nastroj.id = przekierowanie_lekow.id_nastroj inner join leki on leki.id = przekierowanie_lekow.id_leku where leki.nazwa = "vetira" or leki.nazwa = 'lit' and nastroj.id = przekierowanie_lekow.id_nastroj group by przekierowanie_lekow.id_nastroj
Ale to mi wywala nawet nastroje gdzie były brane leki w osobnych nastrojach.
Tabela nastroj
CREATE TABLE `nastroj` (
`id` int(11) NOT NULL,
`id_dziennik` int(11) DEFAULT NULL,
`godzina_zaczecia` datetime NOT NULL,
`godzina_zakonczenia` datetime NOT NULL,
`id_users` int(11) NOT NULL,
`poziom_nastroju` smallint(6) NOT NULL,
`co_robilem` text COLLATE utf8mb4_unicode_ci,
`id_lekow` int(11) DEFAULT NULL,
`poziom_leku` smallint(6) NOT NULL,
`poziom_zdenerwania` smallint(6) NOT NULL,
`epizod_psychotyczne` smallint(6) NOT NULL,
`pobudzenie` smallint(6) NOT NULL,
`id_dnia` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
tabela leki
CREATE TABLE `leki` (
`id` int(11) NOT NULL,
`nazwa` varchar(100) NOT NULL,
`dawka` float NOT NULL,
`data_spozycia` datetime NOT NULL,
`id_users` int(11) NOT NULL,
`porcja` tinyint(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
tabela przekirowania lekow
CREATE TABLE `przekierowanie_lekow` (
`id` int(11) NOT NULL,
`id_leku` int(11) NOT NULL,
`id_nastroj` int(11) NOT NULL,
`id_user` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;