首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否将mySQL表连接到自身以交叉检查结果?

问是否将mySQL表连接到自身以交叉检查结果?
EN

Stack Overflow用户
提问于 2018-11-14 21:30:42
回答 1查看 20关注 0票数 0

我不确定这是最好的题目,但我有这样的答案:

db:用户名

代码语言:javascript
复制
id, username, search_via, value_1
1, Rita, Sue, 1
2, Bob, Sue, 2
3, Bill, Sue, 3
4, Jim, Bill, 4
5, Brian, Bob, 5

我希望能够搜索到search_via为‘so’的所有用户,所以很明显我已经做到了:

代码语言:javascript
复制
SELECT * FROM usernames WHERE search_via = 'Sue':
1, Rita, Sue, 1
2, Bob, Sue, 2
3, Bill, Sue, 3

然后,我希望从这些结果中还返回任何显示为search_via的用户名,因此在本例中,它将是'Brian',因为它是作为‘Sue’的用户名出现的...but的search_via值:

代码语言:javascript
复制
5, Brian, Bob, 5

..so我的完整结果应该是:

代码语言:javascript
复制
1, Rita, Sue, 1
2, Bob, Sue, 2
3, Bill, Sue, 3
5, Brian, Bob, 5

我的第一个search_via名字是...because,在Sue的结果中,有Bob,他是‘search_via’的search_via值。

...我真的很难解释这个,所以我完全不知道如何去做?!?

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-11-14 21:32:57

为了只获取二级层次结构的结果,我们可以简单地使用子查询来获取where为search_via = 'Sue'的所有username值。然后,我们也可以使用WHERE search_via IN (..)来获得二级层次结构结果。

代码语言:javascript
复制
SELECT * 
FROM usernames 
WHERE search_via = 'Sue' OR 
      search_via IN (
                     SELECT username 
                     FROM usernames 
                     WHERE search_via = 'Sue'
                    ) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53301411

复制
相关文章

相似问题

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