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

如何修正SQL查询:匹配user_id时获取property表全部字段无重复

修正后的SQL查询语句

问题分析

你的查询存在两个关键问题:

  • JOIN条件错误:当前的ON子句写的是property.user_id=16,这会让property表中所有user_id=16的记录和users表的所有记录进行关联,产生笛卡尔积,导致重复数据。正确的关联条件应该是两张表的user_id匹配,即property.user_id = users.user_id。
  • 不需要返回users表字段:你只需要property表的全部字段,因此不能用SELECT *(会返回两张表的所有字段),应该明确指定property.*。

修正后的查询语句

如果你想获取所有在users表中有匹配user_id的property记录:

SELECT property.* FROM `property`
INNER JOIN `users` ON `property`.`user_id` = `users`.`user_id`;

如果想保留property表中所有记录(即使users表中没有匹配的user_id),但只显示property的字段:

SELECT property.* FROM `property`
LEFT JOIN `users` ON `property`.`user_id` = `users`.`user_id`;

如果需要筛选特定user_id(比如16)的记录,可以加上WHERE子句:

SELECT property.* FROM `property`
INNER JOIN `users` ON `property`.`user_id` = `users`.`user_id`
WHERE `property`.`user_id` = 16;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:18:29