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

MySQL JOIN查询异常:test表driverid未赋值时无法获取记录

解决test表未赋值driverid记录无法获取的问题

这事儿很常见——你当前用的JOIN是内连接(INNER JOIN),它只会返回两个表中能匹配test.driverid=drivers.driverid条件的记录。当test表的driverid没赋值(也就是NULL)时,根本找不到drivers表中对应的匹配项,自然这些记录就被过滤掉了。

解决方案:改用左连接(LEFT JOIN)

左连接的特性是保留左表(这里是test表)的所有记录,哪怕右表(drivers)里没有匹配的driverid,对应的drivers字段会显示为NULL,但test表的记录会完整保留下来。

修改后的查询语句如下:

SELECT * FROM test 
LEFT JOIN drivers ON test.driverid = drivers.driverid 
ORDER BY COALESCE(drivers.queno, 9999);

额外优化:处理NULL值的排序

如果test表中driverid为空的记录,drivers.queno会是NULL,默认排序时NULL可能会排在最前面或最后面(取决于数据库)。用COALESCE(drivers.queno, 9999)可以给这些NULL值一个默认排序值(比如9999),让它们排在所有有queno的记录后面,你可以根据需求调整这个默认值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:41:08