首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询优化

查询优化
EN

Stack Overflow用户
提问于 2010-02-23 10:05:39
回答 1查看 98关注 0票数 0

我对表格有疑问

选择uid1,uid2从朋友处选择uid1 IN (从朋友中选择uid2,其中uid2=‘.$user_id。)和uid2 IN (从朋友处选择uid2,其中uid1 1=‘.$user_id.’)

现在的问题是嵌套查询

从朋友中选择uid2,其中uid1 1=‘.$user_ID.’

返回大量的ids(大约。( 5000)。

朋友表的表结构是uid1(int),uid2(int)。此表用于确定两个用户是否作为朋友链接在一起。

有什么解决办法吗?我能用不同的方式写查询吗?或者还有别的办法来解决这个问题。我相信我不是第一个面对这样一个问题的人。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2010-02-23 10:15:01

您可以使用带有OR语句的单个联接来消除一个子查询。

但是,要消除任何双行,您必须只返回DISTINCT行。

代码语言:javascript
复制
SELECT DISTINCT f1.uid1, f1.uid2 
  FROM friend AS f1 INNER JOIN 
    friend AS f2 ON (f1.uid1 = f2.uid2 OR f1.uid2 = f2.udi) 
  WHERE f2.uid1='.$user_id.'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2317192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档