You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询与演员表姓名匹配的租赁客户信息

解决方案:找出与演员同名的租赁客户

嘿,我来帮你搞定这个查询需求。首先咱们明确核心目标:从有租赁记录的客户里,找出那些和演员表中名、姓完全一致的人。

方法一:基于你原有的查询逻辑扩展

你已经写出了获取租赁客户姓名的基础查询,我们可以把这个结果作为临时表,再和actors表做关联匹配:

SELECT DISTINCT rental_customers.first_name, rental_customers.last_name
FROM (
    -- 你原有的查询:获取所有客户姓名,后续过滤出有租赁记录的
    SELECT customers.first_name, customers.last_name
    FROM customers
    LEFT JOIN rentals ON customers.customer_id = rentals.customer_id
    -- 过滤掉从未租赁过的客户
    WHERE rentals.customer_id IS NOT NULL
) AS rental_customers
-- 关联演员表,匹配名和姓完全一致的记录
JOIN actors ON rental_customers.first_name = actors.first_name 
           AND rental_customers.last_name = actors.last_name;

方法二:更简洁的多表直接关联

其实我们可以跳过子查询,直接把三个表连接起来,逻辑更清晰高效:

SELECT DISTINCT c.first_name, c.last_name
FROM customers c
-- 用INNER JOIN直接只保留有租赁记录的客户
INNER JOIN rentals r ON c.customer_id = r.customer_id
-- 关联演员表,同时匹配名和姓的组合
INNER JOIN actors a ON c.first_name = a.first_name 
                   AND c.last_name = a.last_name;

关键细节说明

  • 用INNER JOIN rentals替代原查询的LEFT JOIN,是因为我们只需要有过租赁行为的客户,这样能直接过滤掉从未租赁过的客户,比子查询加WHERE更高效。
  • 加上DISTINCT是为了避免同一个客户多次租赁影片时,姓名被重复输出。
  • 必须同时匹配first_name和last_name,确保是完全同名的记录,避免只匹配名或只匹配姓导致的误判。

内容的提问来源于stack exchange,提问作者Angel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:31:58