mysql - SQL 脚本,我的脚本准确吗?

标签 mysql sql oracle sqlplus oracle-sqldeveloper

好的,我收到了我上周参加的评分考试,那是关于使用 Oracle Plus 的 SQL。我回答的有两个问题被标记为错误,但我强烈认为我是正确的,但他坚持认为我的答案是错误的......所以我希望这里的人能够澄清我的答案是否正确!

1.) 第一个问题说: "显示2003年5月未治疗的狗的id和名字"

因此使用以前创建的数据库,一个被称为“狗”,另一个被命名为“治疗”。

注意 两个表都填充了值 dog 表由狗 id、名称等值组成,治疗表由 treatment_id 组成,外键 (dog_id) 从表 dog 引用 dog_id, treatment_date 和其他一些字段...

所以我的回答是:

SELECT dog.dog_id, dog.name, treatment.treatment_date 
FROM dog, treatment 
WHERE treatment.treatment_date NOT BETWEEN '01-MAY-03' and '31-MAY-03'
AND dog.dog_id = treatment.dog_id;

但是他说错了... “--不,这些不会在 5 月处理”

2.) 我的第二个问题是 “找到所有曾经治疗过收养费最低的狗的医生。注意可能有不止一只收养费最低的狗。列出医生的id和狗的id。按医生id升序排列结果按狗 ID 升序排列并为每位医生排序。”

因此使用我们在考试前创建的其他表,一个名为 'adoption' 的属性为 'vet_id' 的外键引用了名为 vet 的表中的 vet_id , 和 'dog_id' 另一个外键;并且还使用另一个名为 'treatment' 的表,其属性为 'vet_id' 一个外键,它从名为 'vet' 的表中引用 vet_id,'dog_id''treatment_fee'

*注意 - 'treatment_fee' 此次检查的最低值(value)或费用为“15”。

我的回答是:

SELECT treatment.vet_id, adoption.dog_id 
FROM adoption, treatment 
WHERE adoption.dog_id = treatment.dog_id
AND treatment.fee = '15' 
ORDER BY treatment.vet_id;

但他又说这是错误的...

所以,我希望这里有人可以帮助我并帮助我回答这种情况。

最佳答案

第一个答案:

SELECT dog.dog_id, dog.name
  FROM dog
 WHERE NOT EXISTS ( SELECT treatment.id
                      FROM treatment
                     WHERE tratment.dog_id = dog.id
                       AND treatment.treatment_date BETWEEN '01-MAY-03' and '31-MAY-03'
                  )

第二个:

SELECT distinct treatment.vet_id, treatment.dog_id
  FROM adoption, treatment 
 WHERE adoption.dog_id = treatment.dog_id
   AND dog.adoption_fee = (SELECT MIN(d2.adoption_fee)
                          FROM dog d2 )
 ORDER BY treatment.vet_id, treatment.dog_id;

关于mysql - SQL 脚本,我的脚本准确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20129884/

相关文章:

php - 如何将 php session 值获取到 mysql 触发器中

mysql - 如何从示例表中获取过去十分钟的推文计数

sql - 一列内多个值的转换

java - 由于子对象仍处于打开状态,因此无法重新关联连接

sql - 空数组作为 PostgreSQL 数组列默认值

mysql - 如何使用 C# 获取 Oracle、SQL Server、postgres、mysql 或任何其他数据库的数据库实例和架构详细信息?

php - 在查询 SELECT 标记内打印 while($row

php - 在 mysql 中使用多个唯一列插入更新

php - 如何组合两个 mysql 查询以在一个下拉列表中显示其结果

sql - SQL Server表中缺少记录