A±í´æÔÚͬһ¸öidµÄ¶àÌõ¼Ç¼£¬°´Ê±¼ä¶à´Î³öÏÖ£¬B±íÓëA±íÒÔid¹ØÁª£¬µ«ÊÇÎÒÏëÈ¡³öA±íidÊ״γöÏÖµÄʱ¼äÒªÔçÓÚB±íµÄʱ¼ä¡£ A±íÓÐ:id,time È磺 1,2010-01-01 00:00:00 2,2010-01-02 00:00:00 2,2010-01-03 00:00:00 3,2010-01-04 00:00:00 3,2010-01-05 00:00:00 3,2010-01-06 00:00:00 B±íÓÐ:id,time1 È磺 1,2010-02-01 00:00:00 2,2010-02-01 00:00:00 3,2010-02-01 00:00:00 ÏëÒªµÄ½á¹ûÊÇ£º 1,2010-01-01 00:00:00 2,2010-01-02 00:00:00 3,2010-01-04 00:00:00ÓÐËÖªµÀ£¿¼±£¬Ð»Ð» SQL code: select A.* from A where time <(select min(time1) from B where B.id=A.id)
Ê×´Î select A.id,min(time) [time] from A where time <(select min(time1) from B where B.id=A.id) Â¥Ö÷Âé·³ÄãÄܲ»ÄÜдµÃÇå³þµã£¬ÎÒÊǸöÐÂÊÖ,лл¡£ Äã¾ÍÊÇÂ¥Ö÷ select A.id,min(time) [time] from A where time <(select min(time1) from B where B.id=A.id) group by a.id
ÓÃ4Â¥Êý¾Ý£¬ÔÚÓÃÉÏÃæÓï¾ä¾Í¿É¼ûµ½½á¹û ;WITH T AS ( SELECT * from A T WHERE EXISTS(SELECT 1 from B WHERE id=T.id AND T.time<time1) ) SELECT * from T A WHERE NOT EXISTS(SELECT 1 from T WHERE id=A.id AND time<A.time) ÎÒ¿´²»Ì«¶®