前提准备
LEFT JOIN ON
LEFT JOIN ON 附件条件
LEFT JOIN ON WHERE
※: 其实WHERE 就是和我们没有联合条件是一样过滤 带WHERE的联合就是把联合后的结果在从新过滤一遍而已!
CREATE TABLE A_TEST
(
A_ID VARCHAR2(100) NOT NULL,
A_C1 VARCHAR2(100)
)
数据:
1 A1
2 A2
3 A3
CREATE TABLE B_TEST
(
B_ID VARCHAR2(100) NOT NULL,
B_C1 VARCHAR2(100),
B_C2 VARCHAR2(100)
)
数据:
1 BC1_1 B_C2_1
2 BC1_2 B_C2_2
3 BC1_3 B_C2_3
LEFT JOIN ON
SELECT A.A_C1
,B.B_C1
,B.B_C2
FROM A_TEST A
LEFT JOIN B_TEST B ON A.A_ID=B.B_ID
检索结果:
A1 BC1_1 B_C2_1
A2 BC1_2 B_C2_2
A3 BC1_3 B_C2_3
LEFT JOIN ON 附件条件
SELECT A.A_C1
,B.B_C1
,B.B_C2
FROM A_TEST A
LEFT JOIN B_TEST B ON A.A_ID=B.B_ID
[color=red][b]AND A.A_ID = '1'[/b][/color]
检索结果:
A1 BC1_1 B_C2_1
A2 (NULL) (NULL)
A3 (NULL) (NULL)
LEFT JOIN ON WHERE
SELECT A.A_C1
,B.B_C1
,B.B_C2
FROM A_TEST A
LEFT JOIN B_TEST B ON A.A_ID=B.B_ID
WHERE A.A_ID='1'
检索结果:A1 BC1_1 B_C2_1
※: 其实WHERE 就是和我们没有联合条件是一样过滤 带WHERE的联合就是把联合后的结果在从新过滤一遍而已!