在编写具有多个连接的查询时遇到问题
Posted
技术标签:
【中文标题】在编写具有多个连接的查询时遇到问题【英文标题】:Having issues writing query with multiple joins 【发布时间】:2019-11-16 03:03:57 【问题描述】:我正在尝试编写一个显示客户 ID、名字、姓氏和返回日期的查询。我需要弄清楚谁是最后一个租借这部电影的人。我知道我需要密切关注 INVENTORY、FILM、RENTAL 和 CUSTOMER 表。我只是不知道怎么写。
这就是我所拥有的:
SELECT DISTINCT
customer.customer_id, customer.first_name,
customer.last_name, rental.customer_id, rental.return_date
FROM
customer, rental
WHERE
customer.customer_id = rental.customer_id
This is the model
Tables and columns
【问题讨论】:
您的模型无法访问 我在您发布的模型中没有看到 rent.return_date。 您必须提供更多细节。例如,您是否在任何地方都有时间信息?或者rental_id 总是一个递增的序列?我猜一旦你设法加入表格,那么相关列的降序顺序应该可以完成这项工作。该相关列可以是时间/日期列或序列列。请考虑提供更多信息。 我已经添加了有问题的表格和列。抱歉,我应该在我的原始帖子中添加这些内容。租赁表中有时间信息。不知道这次我是否更清楚了。 Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSIJOIN
语法-92 SQL 标准(25 多年前),不鼓励使用它
【参考方案1】:
你提供的信息很难说,但你可以试试这个:
SELECT customer.customer_id, customer.first_name, customer.last_name, rental.customer_id, rental.return_date
FROM customer FULL JOIN rental
ON customer.customer_id=rental.customer_id
WHERE rental.return_date=(
SELECT MAX(return_date)
FROM rental
);
您还可以使用 INNER、LEFT 或 RIGHT JOIN。你选择什么取决于你的模型。 PostgreSQL Joins
【讨论】:
哇,这太棒了!我想我对如何编写查询有所了解。我基本上需要找出哪个客户租了电影,所以我需要从 RENTAL 列中添加 TITLE ......我想。对不起,如果我不是很清楚,英语不是我的第一语言。以上是关于在编写具有多个连接的查询时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章