gpt4 book ai didi

来自多个表的 mySQL SELECT 给出了错误的信息

转载 作者:行者123 更新时间:2023-11-29 04:38:47 24 4
gpt4 key购买 nike

每当我尝试选择某些内容时,我都会收到错误的结果。我正在努力

SELECT voornaam, achternaam, transportmiddel
FROM Werknemer, Transportmiddel;

从 Werknemer & Transportmiddel 表中选择名字、姓氏和运输类型。然而..当我执行这个选择时,myQSL 响应

Meindert Stijfhals Fiets
Maarten Heylen Fiets
Meindert Stijfhals Auto
Maarten Heylen Auto

然而,在我的插页中,我定义了这个:

INSERT INTO Winkel values
(0001 , 'xxx', 'xxx');
INSERT INTO Winkel values
(0002 , 'xxx', 'xxx');
INSERT INTO Werknemer values
(0100, 'Meindert', 'Stijfhals', 'xxx', 'xxx', 0001, 007);
INSERT INTO Werknemer values
(0101, 'Maarten', 'Heylen', 'xxx', 'xxx', 0002, 003);

INSERT INTO Transportmiddel values
(1, 'fiets', 20);
INSERT INTO Transportmiddel values
(2, 'auto', 0);
INSERT INTO Werknemer_Transport values
(0100, 1);
INSERT INTO Werknemer_Transport values
(0101, 2);

所以我很确定我刚才说 Meindert Stijfhals (0100) 使用 fiets,而 Maarten Heylen (0101) 使用 auto。此处使用这些表:

CREATE TABLE Werknemer (
personeelsnummer int(4) not NULL,
voornaam varchar(10) not NULL,
achternaam varchar(10) not NULL,
adres varchar(30) not NULL,
telefoon varchar(10) not NULL,
winkelnummer int(4) not NULL,
dokternummer int(3) not NULL,
foreign key(winkelnummer) references Winkel(winkelnummer),
foreign key(dokternummer) references Dokter(dokternummer),
primary key(personeelsnummer)
);

CREATE TABLE Transportmiddel (
transportnummer int (1) not NULL,
transportmiddel varchar(15) not NULL,
bonus_in_euro int(5) not NULL,
primary key(transportnummer)
);

CREATE TABLE Werknemer_Transport (
personeelsnummer int(4) not NULL,
transportnummer int(1) not NULL,
primary key(personeelsnummer, transportnummer),
foreign key(personeelsnummer) references Werknemer(personeelsnummer),
foreign key(transportnummer) references Transportmiddel(transportnummer)
);

这是我的代码:

CREATE TABLE Klant (
klantnummer int(10) not NULL,
voornaam varchar(10) not NULL,
achternaam varchar(10) not NULL,
adres varchar(30) not NULL,
e_mail varchar(40) not NULL,
primary key(klantnummer)
);

CREATE TABLE Winkel (
winkelnummer int(4) not NULL,
winkelnaam varchar(20) not NULL,
winkeladres varchar(30) not NULL,
primary key(winkelnummer)
);

CREATE TABLE Klant_Winkel (
klantnummer int(10) not NULL,
winkelnummer int(4) not NULL,
primary key(klantnummer, winkelnummer),
foreign key(klantnummer) references Klant(klantnummer),
foreign key(winkelnummer) references Winkel(winkelnummer)
);

CREATE TABLE Leverancier (
leveranciernummer varchar(3) not NULL,
naam varchar(30) not NULL,
adres varchar(30) not NULL,
telefoon varchar(10) not NULL,
winkelnummer int(4) not NULL,
foreign key(winkelnummer) references Winkel(winkelnummer),
primary key(leveranciernummer)
);

CREATE TABLE Artikel (
artikelnummer int(5) not NULL,
barcodenummer int(5) not NULL,
artikelnaam varchar(20) not NULL,
descriptie varchar(256),
korting int(5),
stock int(5) not NULL,
type_voeding varchar(10) not NULL,
primary key(artikelnummer)
);

CREATE TABLE Artikel_Winkel (
winkelnummer int(4) not NULL,
artikelnummer int(5) not NULL,
primary key(winkelnummer, artikelnummer),
foreign key(winkelnummer) references Winkel(winkelnummer),
foreign key(artikelnummer) references Artikel(artikelnummer)
);

CREATE TABLE Dokter (
dokternummer int(3) not NULL,
naam varchar(20) not NULL,
adres varchar(30) not NULL,
telefoon varchar(15) not NULL,
primary key(dokternummer)
);

CREATE TABLE Werknemer (
personeelsnummer int(4) not NULL,
voornaam varchar(10) not NULL,
achternaam varchar(10) not NULL,
adres varchar(30) not NULL,
telefoon varchar(10) not NULL,
winkelnummer int(4) not NULL,
dokternummer int(3) not NULL,
foreign key(winkelnummer) references Winkel(winkelnummer),
foreign key(dokternummer) references Dokter(dokternummer),
primary key(personeelsnummer)
);

CREATE TABLE Shift (
shiftnummer int(4) not NULL,
datum varchar(10) not NULL,
start_tijd varchar(5) not NULL,
eind_tijd varchar(5) not NULL,
primary key(shiftnummer)
);

CREATE TABlE Werknemer_Shift (
personeelsnummer int(4) not NULL,
shiftnummer int(4) not NULL,
primary key(personeelsnummer, shiftnummer),
foreign key(personeelsnummer) references Werknemer(personeelsnummer),
foreign key(shiftnummer) references Shift(shiftnummer)
);

CREATE TABLE Jobfunctie (
jobnummer int(4) not NULL,
jobfunctie varchar(15) not NULL,
salaris_in_euro int(10) not NULL,
primary key (jobnummer)
);

CREATE TABLE Werknemer_Jobfunctie (
personeelsnummer int(4) not NULL,
jobnummer int(4) not NULL,
primary key(personeelsnummer, jobnummer),
foreign key(personeelsnummer) references Werknemer(personeelsnummer),
foreign key(jobnummer) references Jobfunctie(jobnummer)
);

CREATE TABLE Transportmiddel (
transportnummer int (1) not NULL,
transportmiddel varchar(15) not NULL,
bonus_in_euro int(5) not NULL,
primary key(transportnummer)
);

CREATE TABLE Werknemer_Transport (
personeelsnummer int(4) not NULL,
transportnummer int(1) not NULL,
primary key(personeelsnummer, transportnummer),
foreign key(personeelsnummer) references Werknemer(personeelsnummer),
foreign key(transportnummer) references Transportmiddel(transportnummer)
);



/* INSERTS */

/* INSERT dokter */
INSERT INTO Dokter values
(007, 'xxx', 'adres', 'xxx');
INSERT INTO Dokter values
(003, 'xxx', 'adres', 'xxx');

/* INSERT Winkel & Werknemer */
INSERT INTO Winkel values
(0001 , 'xxx', 'xxx');
INSERT INTO Winkel values
(0002 , 'xxx', 'xxx');
INSERT INTO Werknemer values
(0100, 'Meindert', 'Stijfhals', 'xxx', 'xxx', 0001, 007);
INSERT INTO Werknemer values
(0101, 'Maarten', 'Heylen', 'xxx', 'xxx', 0002, 003);

/* INSERT Werknemer & Transportmiddel */
INSERT INTO Transportmiddel values
(1, 'fiets', 20);
INSERT INTO Transportmiddel values
(2, 'auto', 0);
INSERT INTO Werknemer_Transport values
(0100, 1);
INSERT INTO Werknemer_Transport values
(0101, 2);

/* INSERT Werknemer & Jobfunctie */
INSERT INTO Jobfunctie values
(0001, 'gerant', 2000);
INSERT INTO Jobfunctie values
(0002, 'arbeider', 1500);
INSERT INTO Werknemer_Jobfunctie values
(0100, 0001);
INSERT INTO Werknemer_Jobfunctie values
(0101, 0002);

/* INSERT Klant */
INSERT INTO Klant values
(0000000001, 'xxx', 'xxx', 'xxx', 'xxx');

/* INSERT Leverancier van een winkel */
INSERT INTO Leverancier values
(009, 'xxx', 'adres', 'telefoon', 0001);

/* INSERT Werknemer & Shift */
INSERT INTO Shift values
(3000, '1/01/2016', '7:00', '17:00');
INSERT INTO Werknemer_Shift values
(0101, 3000);

/* INSERT Artikel & Winkel*/
INSERT INTO Artikel values
(87392, 76351, 'Chips', 'lekkere chips', NULL, 100, 'snoep');
INSERT INTO Artikel_Winkel values
(0001, 87392);
INSERT INTO Artikel_Winkel values
(0002, 87392);

SELECT voornaam, achternaam, transportmiddel
FROM Werknemer, Transportmiddel;

我对不同的 SELECT 命令也有这个问题。谁能帮帮我吗?我认为这是因为我在 2 个表之间有一个表来连接它们。感谢您的宝贵时间!

最佳答案

您必须告诉查询如何连接表。

SELECT w.voornaam, w.achternaam, t.transportmiddel
FROM Werknemer w
JOIN Werknemer_Transport wt ON wt.personeelsnummer = w.personeelsnummer
JOIN Transportmiddel t ON t.transportnummer = wt.transportnummer;

关于来自多个表的 mySQL SELECT 给出了错误的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com