【发布时间】:2021-05-17 11:43:20
【问题描述】:
我在 MySQL 数据库中有这些表:
CREATE TABLE Restaurante(
nombreRest VARCHAR(30) NOT NULL,
telefono INT(9) NOT NULL,
domicilio VARCHAR(50) NOT NULL,
nTenedores ENUM('1','2','3','4','5') NOT NULL,
tipoCocina VARCHAR(15) NOT NULL,
nombreCiudad VARCHAR(30) NOT NULL,
idRestaurante SMALLINT NOT NULL,
PRIMARY KEY (idRestaurante),
FOREIGN KEY (tipoCocina) REFERENCES tipoCocina(tipoCocina),
FOREIGN KEY (nombreCiudad) REFERENCES Ciudad(nombreCiudad)
)
CREATE TABLE Servicio(
idServicio SMALLINT NOT NULL,
precioT DOUBLE(2,2) NOT NULL,
franjaServicio VARCHAR(10) NOT NULL,
cafe BOOLEAN,
beINbida BOOLEAN,
fecha DATE NOT NULL,
idRestaurante SMALLINT NOT NULL,
PRIMARY KEY (idServicio),
FOREIGN KEY (idRestaurante) REFERENCES Restaurante(idRestaurante)
)
CREATE TABLE Plato(
nombrePlato VARCHAR(30) NOT NULL,
descripción VARCHAR(150) NOT NULL,
idRestaurante SMALLINT NOT NULL,
PRIMARY KEY (nombrePlato),
FOREIGN KEY (idRestaurante) REFERENCES Restaurante(idRestaurante)
)
CREATE TABLE Menu(
idServicio SMALLINT NOT NULL,
PrimerPlato VARCHAR(30) NOT NULL,
SegundoPlato VARCHAR(30) NOT NULL,
Postre VARCHAR(30) NOT NULL,
FOREIGN KEY (idServicio) REFERENCES Servicio(idServicio),
FOREIGN KEY (PrimerPlato) REFERENCES Plato(nombrePlato),
FOREIGN KEY (SegundoPlato) REFERENCES Plato(nombrePlato),
FOREIGN KEY (Postre) REFERENCES Plato(nombrePlato),
PRIMARY KEY (idServicio)
)
(不知道好不好,刚上DB的第一门课,如有任何建议,将不胜感激)
我需要显示一家餐厅的 nombreRest、telefono、domicilio 的列表,他们的菜单包含这三个柏拉图('Arros Brut'、'Porcella'、'Pijama')。
我做了三个不同的选择,我的想法是想办法以某种方式加入他们,但我不知道那会如何工作。
SELECT idServicio
FROM Menu
WHERE PrimerPlato = 'Arros Brut' AND SegundoPlato = 'Porcella' AND Postre = 'Pijama'
SELECT idRestaurante
FROM Servicio
WHERE Servicio.idRestaurante = idServicio
SELECT (nombreRest, telefono, domicilio)
FROM Restaurante
WHERE Restaurante.idRestaurante = idRestaurante
【问题讨论】:
-
发布 DDL 做得很好,谢谢!现在通过edit提出问题并以
INSERT语句的形式提供示例数据以及将该示例数据作为表格文本提供所需的结果来完成它。