我们正在为学校计划制作一个简单的数据库。我们有一个这样的表:
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多名学生,因此我们无法手动完成此操作。我再次感谢任何提示。
答案 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;
答案 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 以上回答是基于你的约翰史黛西斯塔西里克的例子。