Cześć
Mam takie zadanie:
Za pomocą narzędzia XAMPP Control Panel uruchom usługę Apache i MySQL. Przejdź następnie do strony http://localhost i wybierz narzędzie phpMyAdmin. Wykonaj następujące czynności:
1. Stwórz bazę danych o nazwie Sklep.
2. Zaimportuj do bazy plik sklep.sql (plik sklep.sql w załączniku zadania).
3. Zapoznaj się ze strukturą bazy danych. Składają się na nią trzy tabele: klient, produkt oraz zamowienie. Każda z nich ma klucz główny zaczynający się od "id". Tabela zamowienie posiada klucz obcy dla pola idKlienta do tabeli klient do pola idKlienta oraz klucz obcy dla pola idProduktu do tabeli produkt do pola idProduktu.
4. Korzystając z zakładki SQL, przygotuj zapytania do bazy i wykonaj je. Kwerendy zapisz w pliku kwerendy.txt.
Lista kwerend do zdefiniowania:
1. zwrócenie imion i nazwisk wszystkich klientów
2. zwrócenie nazw produktów oraz ich cen w kolejności od najtańszego do najdroższego
3. zwrócenie imion i nazwisk klientów oraz nazw i cen produktów jakie kupił każdy z nich
4. zwrócenie imion i nazwisk klientów oraz sumy cen wszystkich zakupów dla każdego z klientów
I tak 1 i 2 mam zrobione wszystko działa jak należy ale w 3 nie wiem co robię źle, ponieważ przypisuje mi wszystkie produkty do każdej osoby. Bardzo proszę o pomoc oraz wyjaśnienie co robię źle.
Baza danych:
-- phpMyAdmin SQL Dump
-- version 4.9.0.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 09 Maj 2022, 14:41
-- Wersja serwera: 10.4.6-MariaDB
-- Wersja PHP: 7.1.32
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Baza danych: `sklep`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `klient`
--
CREATE TABLE `klient` (
`idKlienta` int(11) NOT NULL,
`imie` varchar(10) NOT NULL,
`nazwisko` varchar(10) NOT NULL,
`telefon` int(9) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Zrzut danych tabeli `klient`
--
INSERT INTO `klient` (`idKlienta`, `imie`, `nazwisko`, `telefon`) VALUES
(1, 'Adam', 'Nowak', 123132123),
(2, 'Anna', 'Kowalska', 558558665),
(3, 'Stefan', 'Drabinka', 666555444),
(4, 'Krzysztof', 'Grabki', 741258963),
(5, 'Katarzyna', 'Malinowska', 987456321);
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `produkt`
--
CREATE TABLE `produkt` (
`idProduktu` int(11) NOT NULL,
`nazwa` varchar(20) NOT NULL,
`cena` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Zrzut danych tabeli `produkt`
--
INSERT INTO `produkt` (`idProduktu`, `nazwa`, `cena`) VALUES
(1, 'Procesor', 1230.5),
(2, 'Karta graficzna', 950),
(3, 'Karta muzyczna', 249.49),
(4, 'RAM', 320),
(5, 'Dysk SSD', 599.99);
-- --------------------------------------------------------
--
-- Struktura tabeli dla tabeli `zamowienie`
--
CREATE TABLE `zamowienie` (
`idZamowienia` int(11) NOT NULL,
`idKlienta` int(11) NOT NULL,
`idProduktu` int(11) NOT NULL,
`data` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Zrzut danych tabeli `zamowienie`
--
INSERT INTO `zamowienie` (`idZamowienia`, `idKlienta`, `idProduktu`, `data`) VALUES
(1, 1, 3, '2022-03-01 14:32:12'),
(2, 2, 1, '2022-03-03 16:27:13'),
(3, 1, 1, '2022-03-04 11:35:17'),
(4, 3, 5, '2022-03-06 17:28:17'),
(5, 4, 2, '2022-03-08 15:27:34'),
(6, 4, 4, '2022-03-08 15:27:34'),
(7, 5, 1, '2022-03-13 12:21:41'),
(8, 2, 2, '2022-03-16 14:16:40');
--
-- Indeksy dla zrzutów tabel
--
--
-- Indeksy dla tabeli `klient`
--
ALTER TABLE `klient`
ADD PRIMARY KEY (`idKlienta`);
--
-- Indeksy dla tabeli `produkt`
--
ALTER TABLE `produkt`
ADD PRIMARY KEY (`idProduktu`);
--
-- Indeksy dla tabeli `zamowienie`
--
ALTER TABLE `zamowienie`
ADD PRIMARY KEY (`idZamowienia`),
ADD KEY `klient` (`idKlienta`),
ADD KEY `produkt` (`idProduktu`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT dla tabeli `klient`
--
ALTER TABLE `klient`
MODIFY `idKlienta` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
--
-- AUTO_INCREMENT dla tabeli `produkt`
--
ALTER TABLE `produkt`
MODIFY `idProduktu` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
--
-- AUTO_INCREMENT dla tabeli `zamowienie`
--
ALTER TABLE `zamowienie`
MODIFY `idZamowienia` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
--
-- Ograniczenia dla zrzutów tabel
--
--
-- Ograniczenia dla tabeli `zamowienie`
--
ALTER TABLE `zamowienie`
ADD CONSTRAINT `klient` FOREIGN KEY (`idKlienta`) REFERENCES `klient` (`idKlienta`),
ADD CONSTRAINT `produkt` FOREIGN KEY (`idProduktu`) REFERENCES `produkt` (`idProduktu`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Zapytania:
-- 1.
SELECT
`klient`.`imie`,
`klient`.`nazwisko`
FROM
`klient`;
-- 2.
SELECT
`produkt`.`nazwa`,
`produkt`.`cena`
FROM
`produkt`
ORDER BY
`produkt`.`cena`
ASC;
-- 3.NIE DZIAŁA (pokazuje wszystko)
SELECT
`klient`.`imie`,
`klient`.`nazwisko`,
`produkt`.`nazwa`,
`produkt`.`cena`
FROM
`klient`,
`produkt`,
`zamowienie`
WHERE
`klient`.`idKlienta`=`zamowienie`.`idKlienta`
-- 4. Jeszcze nie zrobiłem