不使用JOIN如何实现关键词SQL连接?* K1 _ e; Y* b+ M w* e
这并非真正必要,但我认为通过这样做,我可以更好地理解联系的实际作用。 " c4 \- u8 Q0 F, f 1 u1 d2 o! f: _4 S) A0 h# J( Z# a& ]解决方案: % C3 B2 _9 S/ P$ z# D. w
基本的INNER JOIN易于实现。 : ]5 I1 V O/ S7 ~1 r. N* ?SELECT L.XCol,R.YColFROM LeftTable AS LINNER JOIN RightTable AS RON L.IDCol=R.IDCol;等效于:2 \; c% z% y4 {4 Q& g9 r
SELECT L.XCol,R.YColFROM LeftTable AS L,RightTable AS RWHERE L.IDCol=R.IDCol;扩展到LEFT / RIGHT / FULL OUTER JOIN,你只需要正确列出不匹配的行和行NULL联合到以前INNER JOIN。 3 }& i- t: I: i; [% K8 F9 u添加左外连接: 5 P& L; q3 Z4 g x: t( xUNION ALLSELECT L.XCol,NULL /* cast the NULL as needed */FROM LeftTable AS LWHERE NOT EXISTS SELECT * FROM RightTable AS R WHERE L.IDCol=R.IDCol)添加正确的外部连接: 7 `6 l T1 \$ @3 Z3 _5 z( t: F2 F# bUNION ALLSELECT NULL,R.YCol /* cast the NULL as needed */FROM RightTable AS RWHERE NOT EXISTS SELECT * FROM LeftTable AS L WHERE L.IDCol=R.IDCol)对于FULL OUTER JOIN,请同时添加以上两项。