Dlaczego w wynikach zapytań dane mi sie dublują?
DROP DATABASE IF EXISTS przychodnia;
CREATE DATABASE przychodnia;
USE przychodnia;
DROP TABLE IF EXISTS miasto;
DROP TABLE IF EXISTS klient;
DROP TABLE IF EXISTS wizyta;
DROP TABLE IF EXISTS gatunek;
DROP TABLE IF EXISTS zwierze;
CREATE TABLE miasto
(
ID_Miasto VARCHAR(50) NOT NULL,
Nazwa VARCHAR(25),
Ulica VARCHAR(25),
Numer VARCHAR(10),
Kod VARCHAR(6),
CONSTRAINT miasta_ID_Miasto_pk PRIMARY KEY (ID_Miasto)
)ENGINE = InnoDB;
CREATE TABLE klient
(
ID_Klient INT NOT NULL,
ID_Miasto VARCHAR(50) NOT NULL,
Imie VARCHAR(15),
Nazwisko VARCHAR(20),
Telefon INT,
Uwagi_Klient VARCHAR(255),
CONSTRAINT klient_ID_Klient_pk PRIMARY KEY (ID_Klient)
)ENGINE = InnoDB;
CREATE TABLE zwierze
(
ID_Zwierzecia INT NOT NULL,
Gatunek VARCHAR(20) NOT NULL,
CelWizyty VARCHAR(100),
Uwagi_Zwierze VARCHAR(255),
CONSTRAINT zwierze_ID_Zwierzecia_pk PRIMARY KEY (ID_Zwierzecia)
)ENGINE = InnoDB;
CREATE TABLE wizyta
(
ID_Wizyta INT NOT NULL,
ID_Klient INT NOT NULL,
ID_Zwierzecia INT NOT NULL,
Data_Wizyty DATE,
Uwagi_Wizyta VARCHAR(255) NOT NULL,
CONSTRAINT wizyta_ID_Wizyta_pk PRIMARY KEY (ID_Wizyta)
)ENGINE = InnoDB;
ALTER TABLE wizyta ADD CONSTRAINT wizyta_ID_Klient_fk FOREIGN KEY (ID_Klient) REFERENCES klient (ID_Klient);
ALTER TABLE wizyta ADD CONSTRAINT wizyta_ID_Zwierzecia_fk FOREIGN KEY (ID_Zwierzecia) REFERENCES zwierze (ID_Zwierzecia);
ALTER TABLE klient ADD CONSTRAINT klient_ID_Miasto_fk FOREIGN KEY (ID_Miasto) REFERENCES miasto (ID_Miasto);
INSERT INTO miasto(ID_Miasto, Nazwa, Kod) VALUES ('NS','Nowa Sól','67-100');
INSERT INTO miasto(ID_Miasto, Nazwa, Kod) VALUES ('BO','Bytom Odrzeński','64-100');
INSERT INTO miasto(ID_Miasto, Nazwa, Kod) VALUES ('ZG','Zielona Góra','69-100');
INSERT INTO miasto(ID_Miasto, Nazwa, Kod) VALUES ('ŻR','Żary','68-100');
INSERT INTO klient(ID_Klient, ID_Miasto, Imie, Nazwisko, Telefon, Uwagi_klient) VALUES ('1','NS', 'Marcin','Wypych', 656394823, 'OK');
INSERT INTO klient(ID_Klient, ID_Miasto, Imie, Nazwisko, Telefon, Uwagi_klient) VALUES ('2','BO', 'Wojtek',’Pająk', 556394823, 'OK');
INSERT INTO klient(ID_Klient, ID_Miasto, Imie, Nazwisko, Telefon, Uwagi_klient) VALUES ('3','ZG', 'Sebastian','Szczęsny', 756494823, 'OK');
INSERT INTO klient(ID_Klient, ID_Miasto, Imie, Nazwisko, Telefon, Uwagi_klient) VALUES ('4','ZG', 'Jakub','Talarczyk', 756494823, 'Tel. Nieaktualny!!!');
INSERT INTO zwierze(ID_Zwierzecia, Gatunek, CelWizyty, Uwagi_Zwierze) VALUES (1, ‘Kot’, 'Czyszczenie uzębienia', ‘Zabieg byl wykonywany' );
INSERT INTO zwierze(ID_Zwierzecia, Gatunek, CelWizyty, Uwagi_Zwierze) VALUES (2, ‘Pies’, 'Szczepienie przeciw wściekliźnie', ‘Zabieg byl wykonywany' );
INSERT INTO zwierze(ID_Zwierzecia, Gatunek, CelWizyty, Uwagi_Zwierze) VALUES (3, ‘Pies’, 'Odrobaczanie i badanie’, ‘Zabieg byl wykonywany' );
INSERT INTO zwierze(ID_Zwierzecia, Gatunek, CelWizyty, Uwagi_Zwierze) VALUES (4, ‘Pies’, ' Szczepienie’, ‘Pies jest agresywny' );
INSERT INTO wizyta(ID_Wizyta, ID_Klient, ID_Zwierzecia, Data_Wizyty, Uwagi_Wizyta) VALUES (1, 4, 1, '2008-05-03',’OK.’);
INSERT INTO wizyta(ID_Wizyta, ID_Klient, ID_Zwierzecia, Data_Wizyty, Uwagi_Wizyta) VALUES (2, 3, 2, '2008-04-25', ‘Potwierdzone’ );
INSERT INTO wizyta(ID_Wizyta, ID_Klient, ID_Zwierzecia, Data_Wizyty, Uwagi_Wizyta) VALUES (3, 2, 3, '2008-03-05', ‘Potwierdzone’ );
INSERT INTO wizyta(ID_Wizyta, ID_Klient, ID_Zwierzecia, Data_Wizyty, Uwagi_Wizyta) VALUES (4, 1, 4, '2008-03-22', ‘UWAGA PIES AGERSYWNY’ );
mysql> select W.Data_Wizyty, K.Nazwisko, Z.ID_Gatunek from wizyta AS w, klient A
S k, zwierze AS z where Z.ID_Zwierzecia = W.ID_Wizyta;
+-------------+-----------+------------+
| Data_Wizyty | Nazwisko | ID_Gatunek |
+-------------+-----------+------------+
| 2008-05-03 | Wypych | Kot |
| 2008-04-25 | Wypych | Pies |
| 2008-03-05 | Wypych | Pies |
| 2008-03-22 | Wypych | Pies |
| 2008-05-03 | Pająk | Kot |
| 2008-04-25 | Pająk | Pies |
| 2008-03-05 | Pająk | Pies |
| 2008-03-22 | Pająk | Pies |
| 2008-05-03 | Szczęsny | Kot |
| 2008-04-25 | Szczęsny | Pies |
| 2008-03-05 | Szczęsny | Pies |
| 2008-03-22 | Szczęsny | Pies |
| 2008-05-03 | Talarczyk | Kot |
| 2008-04-25 | Talarczyk | Pies |
| 2008-03-05 | Talarczyk | Pies |
| 2008-03-22 | Talarczyk | Pies |
+-------------+-----------+------------+
16 rows in set (0.02 sec)
Wynika to ze złych zapytań, czy złej konstrukcji bazy?