sql - 列出仅用于运送水果的卡车
问题描述
假设一个具有模式的数据库
TRUCK (license-plate, maker, model, year, mileage, max-load)
DRIVER (driver-id, name, age, address, license)
TRIP (license-plate, driver-id, date, origin, destination, miles, cargo, cost)
编写关系代数和 SQL,列出仅用于运载水果的卡车的车牌。
我想出了一个解决方案
关系代数:
SQL:
不是正确答案。这是为什么?
解决方案
一种解决方案是使用EXISTS
操作员检查卡车是否运送水果而没有其他类型的货物:
SELECT license-plate
FROM truck
WHERE EXISTS (
SELECT 1
FROM trip
WHERE trip.license-plate = truck.license-plate
AND trip.cargo = 'fruit'
)
AND NOT EXISTS (
SELECT 1
FROM trip
WHERE trip.license-plate = truck.license-plate
AND trip.cargo <> 'fruit'
)
推荐阅读
- postman - 在 API 请求中使用来自 $randomImage 变量的图像
- c++ - 对类使用构造函数时出现动态内存分配问题
- javascript - CSS body/height - 如何补偿移动设备中的地址栏?
- python - 使用 Python 修改 Json 数据
- python - 如何使用数组方法而不是“for循环”绘制正方形、矩形、十六进制二维曲面?
- apache-spark - 有什么方法可以使用 spark 从 s3 并行读取多个镶木地板路径?
- html - flex 或 flex-grow,flex-grow 或 flex
- visual-c++ - 检查数字是否是5的加法
- swift - Swift/UIKit- URLSession.shared.dataTask 未执行 completionHandler
- sql - 对 SQL 查询的查询