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

PostgreSQL/MySQL中查询两表内年龄为25的用户年龄方法

查询两张表中年龄为25的用户年龄(PostgreSQL/MySQL通用)

你的原SQL写法存在问题:INNER JOIN的ON子句是用来定义两张表的关联逻辑(比如通过用户ID关联),而不是用来筛选年龄的条件,这样写会导致逻辑错误,甚至因字段歧义报错。

以下是两种场景下的正确实现方式:

场景1:两张表无关联关系,分别获取各表中年龄25的记录

如果只是想从两张表各自提取年龄等于25的用户年龄,不需要关联表,用UNION ALL或UNION即可:

-- 保留所有匹配记录(包括重复值)
SELECT age FROM tablef WHERE age = 25
UNION ALL
SELECT age FROM tables WHERE age = 25;

-- 自动去重(仅保留唯一的年龄值)
SELECT age FROM tablef WHERE age = 25
UNION
SELECT age FROM tables WHERE age = 25;

场景2:两张表存在关联关系(如共享用户ID)

如果两张表通过某个字段关联(比如user_id),需要关联后筛选年龄为25的记录,正确写法是将关联条件放在ON,过滤条件放在WHERE:

-- 假设两张表通过user_id关联,筛选双方年龄均为25的记录
SELECT tablef.age, tables.age
FROM tablef
INNER JOIN tables ON tablef.user_id = tables.user_id
WHERE tablef.age = 25 AND tables.age = 25;

-- 若只需其中一张表的年龄为25,可调整WHERE条件
-- 例如仅tablef的年龄为25:
SELECT tablef.age, tables.age
FROM tablef
INNER JOIN tables ON tablef.user_id = tables.user_id
WHERE tablef.age = 25;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:02:43