求一句sql语句,用mysql

假如有一张表t,有2个字段s1,s2,假如有如下数据对,每一个()代表表中的一行,第一个数字代表s1,第二个数字代表s2,数据如下:(1,2),(1,3),(1,4),(1,5),(2,1),(3,1),(2,4),(3,4),(4,2),(4,5),但是只有同时存在(1,2),(2,1)或者(1,3),(3,1)这样的数据才符合要求,比如,有(1,5)但是没有(5,1)则不符合要求,假如目标字段是1,怎么查出(1,2),(1,3)

图片说明

select s1,s2 from t where s1=1

select a.* from t a left JOIN t b on a.s1= b.s2 and a.s2 = b.s1 where a.s1 = 1 and b.s1 !='';

select t1.s1,t1.s2 from t t1,t t2 where t1.s1=t2.s2 and t1.s2=t2.s1 and t1.s1=1

显然 我也没有看懂你的意思

直接把题目 给贴上来。看到明白一点

select a.* from t a left JOIN t b on a.s1= b.s2 and a.s2 = b.s1 where a.s1 = 1 and b.s1 !='';

select a.* from t a,t b where a.s1=b.s2 and a.s2=b.s1 and a.s1=1;

本屌昨天也想到一种解决办法,select * from t where s1 in (select s2 from t where s1 = 1) and s2=1