日期:2014-05-16 浏览次数:20522 次
SELECT * FROM a LEFT JOIN b ON a.id=b.id AND a.id=1 AND b.id=2这里 ON 中有三个条件,其意义分别为:
id v ---- 1 a1 2 a2 3 a3 4 a4 5 a5表 b:
id v ---- 1 b1 2 b2 3 b3 4 b4 5 b5SQL 语句:
SELECT * FROM a LEFT JOIN b ON a.id=b.id AND a.id=1 AND b.id=2结果:
1 a1 NULL NULL 2 a2 NULL NULL 3 a3 NULL NULL 4 a4 NULL NULL 5 a5 NULL NULL
SELECT * FROM a LEFT JOIN b ON a.id=b.id WHERE a.id=1 AND b.id=2结果:
1 a1 1 b1 2 a2 2 b2 3 a3 3 b3 4 a4 4 b4 5 a5 5 b5可是并没有符合 a.id=1 且 b.id=2 的记录,所以为零条记录。
SELECT * FROM a LEFT JOIN b ON a.id=b.id AND a.id>1 AND b.id=2结果:
1 a1 NULL NULL 2 a2 2 b2 3 a3 NULL NULL 4 a4 NULL NULL 5 a5 NULL NULL RIGHT JOIN
SELECT * FROM a RIGHT JOIN b ON a.id=b.id AND a.id=1 AND b.id=2a.id=1 表示用谁去匹配(不表示最终结果的筛选条件);b.id=2 表示谁被匹配(不表示最终结果的筛选条件)。