//sql1 = "SELECT a.*, b.* FROM zf_sys_user a LEFT JOIN ( SELECT * FROM zf_user_exam_info WHERE user_id IN (1, 2, 3) AND exam_id = 1 ) b ON a.id = b.user_id where a.id in (1, 2, 3)";
</pre><pre name="code" class="sql">//sql2 = "SELECT a.*, b.* FROM (SELECT * FROM zf_sys_user WHERE id IN (1, 2, 3) ) a LEFT JOIN ( SELECT * FROM zf_user_exam_info WHERE exam_id = 1 ) b ON a.id = b.user_id";
两个sql具有同样的功能,以左表作为主表,例如左表a有三条数据,右表b有两条数据,a.id=b.user_id,
我需要查出三条数据,以上两者都可以。
相同的是条件exam_id=1都放在了left join右边的表里面
同时mysql left join 这篇文章我读起来比较好理解,保存起来备用
还是第二个吧