现在有表
字段
: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'