p_id    s_id
1 1058 1113
2 1061 1089
3 1061 1118
4 1067 1165
5 1067 1122
表ps中有上述记录,两个字段名分别是p_id,s_id
现在要写一个sql语句,通过两个s_id 1165,1122来找出同时和这两个s_id有对应关系的p_id,请问这个怎么写?

解决方案 »

  1.   

    select p_id
    from ps
    where s_id in(1165,1122)
      

  2.   

    楼上的解答有问题要注意 同时满足两个s_id
    而你的答案只是满足其中一个条件就够了
      

  3.   

    p_id --- s_id
    1058--- 1113
    1061--- 1089
    1061--- 1118
    1067--- 1165
    1067--- 1122
      

  4.   

    select p_id from tablename 
    where p_id  in (select p_id from tablename where s_id =1165)
    and p_id  in (select p_id from tablename where s_id =1122);