日期:2014-05-17  浏览次数:20808 次

关于从同一表中根据2条记录确定一条记录的问题
现在有表
字段
:A(PK),B,C,D

假设有数据:
1,M,N1,L1
2,M,N2,L2

现在需要从表中查询B=‘M',并且C='N1',同时要求存在有另一条B=‘M',并且C='N2'的记录,
最后查询出结果M,N2,L1.

之前的做法先先查出B=‘M',并且C='N1',得出B的值,再按照B=‘M',并且C='N2'进行查询,请问现在是否存在一次就可以确定记录的优化方案?

------解决方案--------------------
SELECT T1.B, T2.C, T1.D
  FROM TEST T1
 INNER JOIN TEST T2 ON T1.B = T2.B
                   AND T1.A <> T2.A
 WHERE T1.B = 'M'
   AND T1.C = 'N1'
   AND T2.C = 'N2'