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

SQL多表关联技巧:首表用SELECT *全列查询,其余表选指定列

多表关联查询:获取单表全字段+其他表指定字段的SQL写法

要实现从第一个表取全字段,另外两个表取指定字段的关联查询,核心是明确指定第一个表的全字段(用表名.*),同时列出其他表的目标字段,再搭配正确的关联条件即可,不用手动枚举第一个表的所有字段。

示例场景

假设三个表分别为:

  • users:需要获取全部字段的主表
  • orders:仅需order_id、order_date字段
  • products:仅需product_name、price字段

关联逻辑:用户表与订单表通过用户ID关联,订单表与产品表通过产品ID关联。

基础SQL写法

SELECT users.*, orders.order_id, orders.order_date, products.product_name, products.price
FROM users
JOIN orders ON users.id = orders.user_id
JOIN products ON orders.product_id = products.id;

简化写法(使用表别名)

如果表名较长,可用别名简化代码,可读性更高:

SELECT u.*, o.order_id, o.order_date, p.product_name, p.price
FROM users u
JOIN orders o ON u.id = o.user_id
JOIN products p ON o.product_id = p.id;

注意事项

  • 不能直接写SELECT *,否则会返回所有关联表的所有字段,不符合需求;必须指定第一个表的*(如users.*)来限定仅取该表全字段
  • 根据业务需求选择关联类型:如果需要保留主表中未匹配到关联数据的记录,改用LEFT JOIN替代JOIN
  • 若字段名存在重复(比如多个表都有id字段),建议给重复字段指定别名,避免结果集中字段名冲突

内容的提问来源于stack exchange,提问作者laser.p

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:53:11