Wszystko się da ;]
Zrobiłem dla Ciebie
Baza:
-- phpMyAdmin SQL Dump
-- version 2.11.4
-- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
--
-- Host: localhost
-- Czas wygenerowania: 31 Maj 2010, 09:02
-- Wersja serwera: 5.0.45
-- Wersja PHP: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Baza danych: `test`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla `oceny`
--
CREATE TABLE `oceny` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uczen_id` int(11) NOT NULL,
`przedmiot_id` int(11) NOT NULL,
`ocena_id` int(11) NOT NULL,
`waga` float NOT NULL,
PRIMARY KEY (`id`),
KEY `uczen_id` (`uczen_id`),
KEY `przedmiot_id` (`przedmiot_id`),
KEY `ocena_id` (`ocena_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=5 ;
--
-- Zrzut danych tabeli `oceny`
--
INSERT INTO `oceny` (`id`, `uczen_id`, `przedmiot_id`, `ocena_id`, `waga`) VALUES
(1, 1, 2, 3, 0.7),
(2, 4, 1, 6, 0.2),
(3, 8, 2, 1, 0.5),
(4, 3, 2, 4, 0.2);
-- --------------------------------------------------------
--
-- Struktura tabeli dla `oceny_nazwy`
--
CREATE TABLE `oceny_nazwy` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ocena` varchar(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=7 ;
--
-- Zrzut danych tabeli `oceny_nazwy`
--
INSERT INTO `oceny_nazwy` (`id`, `ocena`) VALUES
(1, 'ndst'),
(2, 'dop'),
(3, 'dst'),
(4, 'db'),
(5, 'bdb'),
(6, 'cel');
-- --------------------------------------------------------
--
-- Struktura tabeli dla `przedmioty`
--
CREATE TABLE `przedmioty` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nazwa` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=6 ;
--
-- Zrzut danych tabeli `przedmioty`
--
INSERT INTO `przedmioty` (`id`, `nazwa`) VALUES
(1, 'polski'),
(2, 'historia'),
(3, 'matematyka'),
(4, 'biologia'),
(5, 'wf');
-- --------------------------------------------------------
--
-- Struktura tabeli dla `uczniowie`
--
CREATE TABLE `uczniowie` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`imie` varchar(40) NOT NULL,
`nazwisko` varchar(40) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=9 ;
--
-- Zrzut danych tabeli `uczniowie`
--
INSERT INTO `uczniowie` (`id`, `imie`, `nazwisko`) VALUES
(1, 'Jan', 'Kowalski'),
(2, 'Joanna', 'Nowak'),
(3, 'Andrzej', 'Wiertara'),
(4, 'Oktawia', 'Wysoka'),
(5, 'Zygmunt', 'Krzak'),
(6, 'Agnieszka', 'Barszcz'),
(7, 'Mateusz', 'Franek'),
(8, 'Katarzyna', 'Pola');
--
-- Ograniczenia dla zrzutów tabel
--
--
-- Ograniczenia dla tabeli `oceny`
--
ALTER TABLE `oceny`
ADD CONSTRAINT `oceny_ibfk_8` FOREIGN KEY (`ocena_id`) REFERENCES `oceny_nazwy` (`id`),
ADD CONSTRAINT `oceny_ibfk_6` FOREIGN KEY (`uczen_id`) REFERENCES `uczniowie` (`id`),
ADD CONSTRAINT `oceny_ibfk_7` FOREIGN KEY (`przedmiot_id`) REFERENCES `przedmioty` (`id`);
Zapytanie:
SELECT `oceny`.`id`, `imie`, `nazwisko`, `przedmioty`.`nazwa` AS `przedmiot`, `oceny_nazwy`.`ocena` FROM `oceny`
LEFT JOIN `uczniowie` ON(`uczen_id` = `uczniowie`.`id`)
LEFT JOIN `przedmioty` ON(`przedmiot_id` = `przedmioty`.`id`)
LEFT JOIN `oceny_nazwy` ON(`ocena_id` = `oceny_nazwy`.`id`)