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

SQL多表连接查询:如何避免id列重复并自定义列名?

解决SQL左连接后ID列重复显示的问题

问题出在你用了SELECT a.id as table_id, *——这里的*会把两张表的所有列都查出来,包括pipeline_tables的原始id列、pipeline_columns的id列,再加上你单独定义的table_id,自然会出现重复的ID列。

要实现只显示table_id和column_id两个ID列,同时保留其他所有非ID列,你需要避免使用*,明确指定要查询的列:

SELECT
  a.id AS table_id,
  b.id AS column_id,
  -- 列出pipeline_tables表除id外的所有列,示例:
  a.table_name, a.create_time,
  -- 列出pipeline_columns表除id外的所有列,示例:
  b.column_name, b.data_type
FROM [CFG].[pipeline_tables] a
LEFT JOIN [CFG].[pipeline_columns] b 
  ON a.[id] = b.[pipeline_tables_id]

如果两张表的非ID列非常多,不想逐个列出,也可以用表别名指定对应表的所有列,但要注意:SQL不支持直接通过*排除某列,所以还是建议明确列名——这不仅能解决你的问题,还能让SQL语句更清晰,避免后续表结构变更时出现意外问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:33:11