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

单条MySQL查询:跨表关联无匹配记录时列显示NULL

解决PROJECT与POST_PROJECT表关联查询需求

表结构与示例数据

  • PROJECT表结构:PID, HOSTNAME, STATUS
  • POST_PROJECT表结构:PID, HOSTNAME, POST_STATUS

PROJECT表示例数据

PID | HOSTNAME | STATUS
----|----------|--------
1   | HOST1    | SUCCESS
1   | HOST2    | FAIL

POST_PROJECT表示例数据

PID | HOSTNAME | POST_STATUS
----|----------|-------------
1   | HOST1    | FAIL

正确查询语句

要保留PROJECT表的所有记录,同时匹配POST_PROJECT中相同PID和HOSTNAME的条目,无匹配时对应列显示NULL,使用**左连接(LEFT JOIN)**即可实现:

SELECT 
    p.PID,
    p.HOSTNAME,
    p.STATUS,
    pp.POST_STATUS
FROM PROJECT p
LEFT JOIN POST_PROJECT pp 
    ON p.PID = pp.PID 
    AND p.HOSTNAME = pp.HOSTNAME;

预期输出结果

PID | HOSTNAME | STATUS  | POST_STATUS
----|----------|---------|-------------
1   | HOST1    | SUCCESS | FAIL
1   | HOST2    | FAIL    | NULL

说明

LEFT JOIN会返回左表(PROJECT)的所有行,当右表(POST_PROJECT)中没有找到同时匹配PID和HOSTNAME的记录时,右表对应的列会自动填充为NULL,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:52:34