比较同一个表上的不同列和行

时间:2014-03-10 06:17:54

标签: php mysql sql

我们正在为学校计划制作一个简单的数据库。我们有一个这样的表:

ID     A        B

1    John    Stacey
2    Stacey  Mark
3    Candice Rick
4    Stacey  Rick
5    Rick    Stacey

如果我们输入Stacey的名字,我们会显示行数:

表示每一行(比方说,x和y)

rowX-ColumnA = rowY-ColumnB AND rowY-ColumnA = rowX-ColumnB

在这种情况下,它应输出:

2行:

4    Stacey  Rick
5    Rick    Stacey

谢谢!我们有100多名学生,因此我们无法手动完成此操作。我再次感谢任何提示。

3 个答案:

答案 0 :(得分:0)

这样做

SELECT p1.* 
FROM People p1
     INNER JOIN
     People p2 ON p1.A=p2.B AND p1.B=p2.A
WHERE p1.A='Stacey' OR p1.B='Stacey'

请参阅this SQLfiddle(SQL Server 2008)

答案 1 :(得分:0)

尝试此查询我的朋友:

select t1.* from table1 t1 
inner join table1 t2 on t1.A = t2.B and t1.B = t2.A;

SQL Fiddle

答案 2 :(得分:0)

根据你的例子。我想你可能正在寻找这样的东西:

select stu1.* from students stu1, students stu2 where stu1.last_name = stu2.first_name union select stu1.* from students stu1, students stu2 where stu1.first_name = stu2.last_name;

http://sqlfiddle.com/#!4/e9bbf/2/0 以上回答是基于你的约翰史黛西斯塔西里克的例子。