Mysql 从SQL中的单个列返回所有唯一可能组合的对
数据库中有两列Employee_ID和Employee_Name,如下所示 Exmaple表格如下所示:Mysql 从SQL中的单个列返回所有唯一可能组合的对,mysql,sql,Mysql,Sql,数据库中有两列Employee_ID和Employee_Name,如下所示 Exmaple表格如下所示: Employee_ID Employee_Name 1001 Sam 1002 Jon 1003 Molly 1004 Margot SQL中的预期输出: ( Sam -> Jon) ( Sam -> Molly ) ( Sam -> Margot ) ( Jo
Employee_ID Employee_Name
1001 Sam
1002 Jon
1003 Molly
1004 Margot
SQL中的预期输出:
( Sam -> Jon)
( Sam -> Molly )
( Sam -> Margot )
( Jon -> Molly )
( Jon -> Margot )
( Molly -> Margot )
请注意:这一对不能重复。
例如:
( Sam -> Molly )
( Molly -> Sam )
或
已尝试查询:
SELECT a.emp_name, b.emp_name
FROM emp_info a, emp_info b
where a.emp_name <> b.emp_name;
您可以使用id上的不等式条件自联接表,如下所示:
select e1.Employee_Name, e2.Employee_Name
from employee e1
inner join employee e2 on e1.Employee_ID < e2.Employee_ID
:
因此,它不是一个代码编写服务。请尝试自己解决问题,然后在遇到问题时发布问题。您使用的是MySQL还是SQL Server?谢谢GMB。我正在学习sql。之前,我尝试了以下查询,但无法得到答案。抱歉,我没有在前面的问题中发布查询从emp_信息a、emp_信息b中选择a.emp_名称、b.emp_名称,其中a.emp_名称b.emp_名称```@ani2l:您尝试的查询将为您提供类似Sam,Jon和Jon,Sam的重复对。id上的不等式条件避免了这一点。旁注:你应该在你的问题中公布你的尝试,并解释你遇到的问题,这可能会避免它收到的否决票…是的,谢谢你的建议,下一步肯定会提出attempt@ani2l:欢迎!如果我的答案正确回答了你的问题,请点击复选标记。。。谢谢@ani2l:当我们进行此项工作时,另一个好的做法是只使用一个数据库产品进行标记。正如Dale K所评论的,您不应该同时标记sql server和mysql。只需在这两个标签中保留一个,它对应于您正在使用的数据库。
select e1.Employee_Name, e2.Employee_Name
from employee e1
inner join employee e2 on e1.Employee_ID < e2.Employee_ID
Employee_Name | Employee_Name
:------------ | :------------
Sam | Jon
Sam | Molly
Sam | Margot
Jon | Molly
Jon | Margot
Molly | Margot