不使用JOIN如何实现关键词SQL连接?. x9 `3 ~# f1 z: O
这并非真正必要,但我认为通过这样做,我可以更好地理解联系的实际作用。0 H* |% k0 C( k) q7 `5 t& n3 Q* E" t
, a2 I: J# X" j 解决方案: 8 P0 S4 w9 k9 f; j9 t. F 基本的INNER JOIN易于实现。6 O- j3 c/ m1 E B8 S/ C& O
SELECT L.XCol,R.YColFROM LeftTable AS LINNER JOIN RightTable AS RON L.IDCol=R.IDCol;等效于: 1 S8 B1 X: Y/ ~" K- z" u/ M9 I5 |SELECT L.XCol,R.YColFROM LeftTable AS L,RightTable AS RWHERE L.IDCol=R.IDCol;扩展到LEFT / RIGHT / FULL OUTER JOIN,你只需要正确列出不匹配的行和行NULL联合到以前INNER JOIN。# K! L% r8 s7 R! U
添加左外连接: $ H; a1 B6 m) q2 d! r* X+ ^UNION 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)添加正确的外部连接:) Z9 u1 S6 ^2 a
UNION 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,请同时添加以上两项。