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

力扣Trips and Users题提交报Table 'test.users_id'不存在错误问询

错误原因及修复方案

直接报错触发原因

你第二个子查询中写错了表名:join Users_Id u4 on t1.Driver_Id = u4.Users_Id,正确的用户表名为Users,你误写为Users_Id,系统找不到该表时会默认拼接当前默认数据库前缀test,所以抛出Table 'test.users_id' doesn't exist的报错,并非你主动引用了test库的表。

其他存在的语法/逻辑错误

  • 拼写错误:
    1. 四舍五入函数round被误写为around,计数函数count被误写为coount
    2. 客户端ID字段Client_Id被误写为Clinet_Id
    3. 第二个子查询中Trips表的别名是t2,但后续关联时错误使用了不存在的别名t1
    4. 外层查询引用了不存在的别名t1,子查询输出的别名只有s1和s2
  • 逻辑错误:
    1. 第一个子查询的where条件没有加括号区分优先级,u1.Banned = 'No' and u2.Banned = 'No' and t1.Status = 'cancelled_by_driver' or t1.Status = 'cancelled_by_client'的执行逻辑会变为「满足司机乘客都未封禁且司机取消,或者只要是乘客取消不管是否封禁都算」,不符合合法订单的统计要求
    2. 你用笛卡尔积关联s1和s2两个子查询,没有关联条件,会导致数据大量重复,计算出的比例完全错误

正确实现参考

SELECT 
    Request_at AS `Day`,
    ROUND(
        SUM(CASE WHEN Status LIKE 'cancelled%' THEN 1 ELSE 0 END) / COUNT(*),
        2
    ) AS `Cancellation Rate`
FROM Trips t
JOIN Users u1 ON t.Client_Id = u1.Users_Id AND u1.Banned = 'No'
JOIN Users u2 ON t.Driver_Id = u2.Users_Id AND u2.Banned = 'No'
WHERE Request_at BETWEEN '2013-10-01' AND '2013-10-03'
GROUP BY Request_at;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:36:04