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

如何编写SQL查询实现table_system与table_drive的多字段关联?

解决硬盘ID转型号的SQL关联查询问题

假设表结构

先明确两张表的字段对应关系(如果你的实际字段名不同,替换成自己的即可):

  • table_drive:存储硬盘基础信息
    • drive_id:硬盘唯一ID(主键)
    • drive_model:硬盘型号
  • table_system:存储系统与硬盘的关联
    • system_name:系统名称
    • drive_1:关联的第一个硬盘ID
    • drive_2:关联的第二个硬盘ID

正确的SQL查询语句

要把两个硬盘ID替换成对应型号,需要两次关联table_drive表,并通过别名区分两次关联的表:

SELECT 
    ts.system_name,
    d1.drive_model AS drive_1_model,
    d2.drive_model AS drive_2_model
FROM 
    table_system ts
LEFT JOIN 
    table_drive d1 ON ts.drive_1 = d1.drive_id
LEFT JOIN 
    table_drive d2 ON ts.drive_2 = d2.drive_id;

关键说明

  • 使用LEFT JOIN:确保即使某个硬盘ID在table_drive中没有匹配(比如ID无效或未录入),系统记录依然会被保留,对应型号字段显示为NULL;如果能保证所有硬盘ID都存在于table_drive,可以换成INNER JOIN。
  • 表别名d1/d2:因为要多次关联同一张表,必须用别名区分,避免字段冲突。
  • 字段重命名:通过AS将查询结果的字段名设置为更直观的名称(比如drive_1_model明确对应原drive_1的型号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:20:56