如何用SQL关联查询获取search_terms为'dog'的用户姓名与城市?
解决你的SQL查询问题
嘿,我来帮你搞定这个查询问题!你的核心问题大概率是两张表之间缺少关联条件——数据库根本不知道users里的某条记录对应info里的哪条记录,自然没法正确返回结果。
先理清楚关键前提
正常情况下,info表应该有一个关联用户的字段(比如user_id),用来和users表的主键(比如id)对应。如果你的info表目前没有这个字段,那得先给它加上,不然没法准确关联用户和他们的搜索记录。
正确的SQL查询语句示例
假设你的users表有主键id,info表有user_id字段关联users.id,那可以用下面的SQL:
SELECT u.name, u.city FROM users u INNER JOIN info i ON u.id = i.user_id WHERE i.search_terms = 'dog';
简单解释下这段代码
- 用
INNER JOIN(也可以直接写JOIN)把两张表关联起来,ON后面就是关联规则,告诉数据库怎么匹配用户和他们的搜索记录 u和i是表的别名,写起来更简洁WHERE子句负责过滤出search_terms等于'dog'的记录,最后只返回对应的姓名和城市
如果你的关联字段不是id和user_id,只要把ON后面的条件换成你实际的关联字段就行(比如如果用用户名关联,那就是u.name = i.username,但更推荐用唯一的ID字段关联,避免重名问题)。
内容的提问来源于stack exchange,提问作者Lanie909
相关产品推荐
相关产品推荐

