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

如何使用SQL从主表选取列并按条件从第二张表取对应列

解决方案

你的需求可以通过LEFT JOIN(左连接)实现,原有写法存在两个核心问题:

  • 使用逗号关联两张表属于隐式交叉连接,会生成两张表记录的笛卡尔积,完全不符合需求
  • CASE语法使用错误,且不需要嵌套子查询实现该逻辑

正确查询语句(SQL Server 语法)

SELECT TOP (50) 
    A.MessageID,
    A.UserID,
    B.MessageData
FROM Message AS A
LEFT JOIN Market AS B 
    ON A.MessageID = B.MessageID

说明

  • 左连接LEFT JOIN会保留左表Message的所有符合条件的记录,当MessageID在右表Market中存在匹配记录时,MessageData返回对应的值,没有匹配时自动返回NULL,完全符合你的需求,无需额外写判断逻辑
  • 如果你使用的是MySQL/PostgreSQL这类数据库,将TOP (50)替换为LIMIT 50放在语句末尾即可

内容的提问来源于stack exchange,提问作者John D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:45:07