SELECT
student.SNO,
student.SNAME,
IC.ICNAME,
IC.ICMoney
FROM
student
LEFT JOIN IC
ON (student.ICNO = IC.ICNO);
+------+-------+--------+---------+
| SNO | SNAME | ICNAME | ICMoney |
+------+-------+--------+---------+
| 1 | 张三 | 张三 | 500 |
| 2 | 李四 | 李四 | 250 |
| 3 | 王五 | NULL | NULL |
+------+-------+--------+---------+
3 rows in set (0.00 sec)
Oracle 有种另外的写法.
SELECT
student.SNO,
student.SNAME,
IC.ICNAME,
IC.ICMoney
FROM
student, IC
WHERE
student.ICNO = IC.ICNO(+);
SNO SNAME ICNAME ICMONEY
--------- -------------------- -------------------- ----------
1 张三 张三 500
2 李四 李四 250
3 王五
可以理解为, 有 (+) 的, 就是 可选的 (也就是可以为 NULL 的)。