Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 一次一次_Sql - Fatal编程技术网

Sql 一次一次

Sql 一次一次,sql,Sql,我已经建立了我的数据库当然等,但我有问题的代码。我试图解决这个问题 “海军陆战队员的名字(每人一次),他们预订了红船,他们的吨位超过200吨。”我这样做了 Select distinct m.name From marina m join reservation r on (m.mid, r.mid) Where r.bid = (select b.bid from boat b where b.color = "red") 我试着使用它,但我失败了,所以如果有人可以帮忙编辑,我就在这里发布。

我已经建立了我的数据库当然等,但我有问题的代码。我试图解决这个问题 “海军陆战队员的名字(每人一次),他们预订了红船,他们的吨位超过200吨。”我这样做了

Select distinct m.name
From marina m join reservation r on (m.mid, r.mid)
Where r.bid = (select b.bid from boat b where b.color = "red")
我试着使用它,但我失败了,所以如果有人可以帮忙编辑,我就在这里发布。这是我的数据库

drop table if exists reservation;
drop table if exists marina;
drop table if exists boat;
drop table if exists sailor;

create table boat
    (bid integer not null constraint c_bid primary key,
     bname varchar(40),
     color varchar(40) 
     constraint c_color check (color in ('Red','Blue','Light Green','Yellow')));


create table marina
    (mid integer not null constraint m_key primary key,
     name varchar(40) not null,
    capacity integer);

create table sailor 
    (sid integer not null constraint c_sid primary key,
     sname varchar(40),
     rating integer 
     constraint c_rating check (rating between 1 and 10),
     age real constraint    
     c_age check (age < 18 OR age = 18));


create table reservation
    (sid integer not null constraint f_key1 references sailor(sid) on delete cascade,
    bid integer not null constraint f_key2 references boat(bid) on delete restrict
                                   constraint c_bid check (bid not in (999)),
    mid integer constraint f_key3 references marina(mid) on delete set null, 
    r_date date not null constraint c_date check (r_date > '02/04/1998'), 
    constraint p_key primary key(sid,bid,r_date));


INSERT INTO sailor(sid,sname,rating,age) VALUES (2, 'John', 6, 17);
INSERT INTO sailor(sid,sname,rating,age) VALUES (11, 'Mary', 10, 18);
INSERT INTO sailor(sid,sname,rating,age) VALUES (12, 'TH', 7, 14);
INSERT INTO sailor(sid,sname,rating,age) VALUES (13, 'John', 9, 18);
INSERT INTO sailor(sid,sname,rating,age) VALUES (1, 'Christin', 10, 17);
INSERT INTO sailor(sid,sname,rating,age) VALUES (15, 'Thod', 10, 13);
INSERT INTO sailor(sid,sname,rating,age) VALUES (16, 'Leonid', 5, 13);
INSERT INTO sailor(sid,sname,age) VALUES (17,'Left',17);
INSERT INTO sailor(sid,sname,rating,age) VALUES (19,'Polu',1,16);
INSERT INTO sailor(sid,sname,rating,age) VALUES (27,'Marinin',8,15);
INSERT INTO sailor(sid,sname,rating,age) VALUES (37,'Cos',8,14);


INSERT INTO marina(mid,name,capacity) VALUES(33,'Porto',300);
INSERT INTO marina(mid,name,capacity) VALUES(5,'Calam',105);
INSERT INTO marina(mid,name,capacity) VALUES(1,'Plat',32);
INSERT INTO marina(mid,name,capacity) VALUES(7,'Pos',19);
INSERT INTO marina(mid,name,capacity) VALUES(2,'Our',105);


INSERT INTO boat(bid,bname,color) VALUES(88,'Sof','Blue');
INSERT INTO boat(bid,bname,color) VALUES(17,'Ag','Light Green');
INSERT INTO boat(bid,bname,color) VALUES(13,'Panag','Yellow');
INSERT INTO boat(bid,bname,color) VALUES(1,'Αg.N','Red');
INSERT INTO boat(bid,bname,color) VALUES(72,'Christin','Red');
INSERT INTO boat(bid,bname,color) VALUES(19,'Dil','Light Green');
INSERT INTO boat(bid,bname,color) VALUES(77,'Αg.G','Blue');


INSERT INTO reservation(sid,bid,mid,r_date) VALUES(2,88,7,'1999-02-17');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(12,17,2,'1998-05-17');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(11,17,2,'1999-01-17');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(13,13,7,'2003-01-13');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(11,13,33,'2000-05-05');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(1,1,33,'2000-05-05');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(1,13,33,'2000-05-06');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(1,17,33,'2000-05-07');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(1,19,33,'2000-05-08');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(1,72,33,'2000-05-09');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(1,88,33,'2000-05-10');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(1,77,2,'2000-08-10');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(19,13,33,'1999-10-12');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(27,88,7,'2000-06-11');
INSERT INTO reservation(sid,bid,mid,r_date) VALUES(37,72,2,'2001-04-27');
如果存在保留,则删除表;
如果有码头,放下桌子;
如果船上有升降台;
如果有水手,放下工作台;
创建桌船
(bid整数非空约束c_bid主键,
bname varchar(40岁),
color varchar(40)
约束c_颜色检查(颜色为(‘红色’、‘蓝色’、‘浅绿色’、‘黄色’));
创建表marina
(中间整数非空约束m_键主键,
名称varchar(40)不为空,
容量(整数);
创建桌面水手
(sid整数非空约束c_sid主键,
斯奈姆·瓦尔查尔(40岁),
额定整数
约束c_额定值检查(额定值介于1和10之间),
年龄限制
c_年龄检查(年龄<18岁或年龄=18岁);
创建表预订
(sid integer not null约束f_key1引用delete级联上的SAILER(sid),
bid integer not null约束f_key2在删除限制时引用船(bid)
约束c_投标检查(投标不在(999)),
中间整数约束f_key3引用删除集null上的marina(中间),
r_日期日期非空约束c_日期检查(r_日期>'02/04/1998'),
约束p_键主键(sid、bid、r_日期);
插入水手(sid、sname、等级、年龄)值(2,‘John’、6、17);
插入水手(sid、sname、等级、年龄)值(11,‘玛丽’、10、18);
插入水手(sid、sname、等级、年龄)值(12,‘TH’、7、14);
插入水手(sid、sname、等级、年龄)值(13,‘约翰’、9、18);
插入水手(sid、sname、等级、年龄)值(1,‘Christin’、10、17);
插入水手(sid、sname、等级、年龄)值(15,‘Thod’、10、13);
插入水手(sid、sname、等级、年龄)值(16,‘狮子座’、5、13);
插入水手(sid、sname、年龄)值(17、‘左’,17);
插入水手(sid、sname、等级、年龄)值(19,'Polu',1,16);
插入水手(sid、sname、等级、年龄)值(27,'Marinin',8,15);
插入水手(sid、sname、等级、年龄)值(37,'Cos',8,14);
插入marina(mid、名称、容量)值(33,'Porto',300);
将值(5,'Calam',105)插入码头(中间、名称、容量);
插入marina(mid、名称、容量)值(1,'Plat',32);
插入marina(mid、名称、容量)值(7,'Pos',19);
插入marina(mid、名称、容量)值(2,'Our',105);
将(bid、bname、color)值(88、‘Sof’、‘蓝色’)插入船中;
在船上插入(bid、bname、color)值(17、‘Ag’、‘浅绿色’);
将值(13,'Panag','Yellow')插入船中(bid,bname,color);
将值(1,'g.N','Red')插入船中(投标、B名称、颜色);
将值(72,'Christin','Red')插入到船中(bid,bname,color);
将值(19,'Dil','浅绿色')插入到船中(投标、B名称、颜色);
将值(77,'g.g','Blue')插入船中(bid、bname、color);
在保留(sid、投标、中期、r_日期)中插入值(2,88,7,'1999-02-17');
在保留(sid、投标、中期、r_日期)中插入值(12,17,2,'1998-05-17');
在保留(sid、投标、中期、r_日期)中插入值(11,17,2,'1999-01-17');
在保留(sid、投标、中期、r_日期)中插入值(13,13,7,'2003-01-13');
在保留(sid、投标、中期、r_日期)中插入值(11,13,33,'2000-05-05');
将值(1,1,33,'2000-05-05')插入保留(sid、投标、中期、r_日期);
将值(1,13,33,'2000-05-06')插入保留(sid、投标、中期、r_日期);
在保留(sid、投标、中期、r_日期)中插入值(1,17,33,'2000-05-07');
在保留(sid、投标、中期、r_日期)中插入值(1,19,33,'2000-05-08');
将值(1,72,33,'2000-05-09')插入保留(sid、投标、中期、r_日期);
将值(1,88,33,'2000-05-10')插入保留(sid、投标、中期、r_日期);
将值(1,77,2,'2000-08-10')插入保留(sid、投标、中期、r_日期);
在保留(sid、投标、中期、r_日期)中插入值(19,13,33,'1999-10-12');
在保留(sid、投标、中期、r_日期)中插入值(27,88,7,'2000-06-11');
在保留(sid、投标、中期、r_日期)中插入值(37,72,2,'2001-04-27');

这可以通过EXISTS子查询解决:

select m.*
from marina m
where m.capacity > 200
  and exists (select *
              from reservation r
                 join boat b on r.bid = b.bid
              where mid = m.mid
                and b.color = 'Red')
其中m.capacity>200
仅选择容量大于200的码头(这就是我对“吨位大于200”的理解)

(相关)子查询然后检查为红船预订的每个码头(这就是我对“为红船预订”部分的理解)


这可以通过EXISTS子查询解决:

select m.*
from marina m
where m.capacity > 200
  and exists (select *
              from reservation r
                 join boat b on r.bid = b.bid
              where mid = m.mid
                and b.color = 'Red')
其中m.capacity>200
仅选择容量大于200的码头(这就是我对“吨位大于200”的理解)

(相关)子查询然后检查为红船预订的每个码头(这就是我对“为红船预订”部分的理解)


请(通过单击下面的链接)提出您的问题,并添加一些示例数据和基于该数据的预期输出。有关如何创建美观的文本表的一些提示,请参见。(你的问题-不要在评论中发布代码或其他信息)@a_horse_和_no_name我没有按照你的要求编辑它。我将代码发布到网站上,但什么都没有。你期望的输出是什么?我不知道。它也问我,并且大于200,我没有把它放到你的问题中(通过点击下面的链接)并添加一些样本数据和基于该数据的预期输出。有关如何创建美观的文本表的一些提示,请参见。(你的问题-不要在评论中发布代码或其他信息)@a_horse_和_no_name我没有按照你的意愿编辑它。我将代码发布到网站上,但什么都没有。你期望的输出是什么?我不知道。它也问我,而且大于200,我没有把它放在那里