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

如何在SQL中查询包含NULL结果的指定用户值?

实现指定用户列表全量返回(不存在用户字段为NULL)的SQL查询方法

要实现指定用户列表全量返回、不存在用户对应字段为NULL的需求,不能直接用WHERE IN(它只会返回原表中存在的记录),需要通过**左连接(LEFT JOIN)**结合临时用户数据集来实现,核心思路是把目标用户列表作为左表,原表作为右表做左连接,保留左表所有记录,匹配不上的右表字段自动填充NULL。

通用主流数据库写法(PostgreSQL、SQL Server等)

直接用VALUES子句构造目标用户列表:

SELECT 
    users.target_user AS "user",
    t.code
FROM (
    VALUES 
        ('user1'),
        ('user2'),
        ('user3'),
        ('user4')
) AS users(target_user)
LEFT JOIN your_table t ON t."user" = users.target_user;

MySQL兼容写法(含8.0之前版本)

MySQL 8.0之前不支持直接用VALUES作为临时表,改用UNION ALL构造用户列表:

SELECT 
    users.target_user AS `user`,
    t.code
FROM (
    SELECT 'user1' AS target_user
    UNION ALL SELECT 'user2'
    UNION ALL SELECT 'user3'
    UNION ALL SELECT 'user4'
) AS users
LEFT JOIN your_table t ON t.`user` = users.target_user;

注意事项

  • 如果user是数据库关键字,需要用对应数据库的转义符包裹(MySQL用反引号`,PostgreSQL/SQL Server用双引号")。
  • 替换your_table为实际表名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:38:19