数据库表左连接查询首先一个表和3张表进行左连接查询,将查询的结果看做一张虚拟表,再将这个虚拟表,和另外一张表进行左连接查
StringBuffer sb = new StringBuffer("select x.id,x.name,x.vendor_id,x.viwe,x.vendor_name,x.c_id,cy.name category_name from"
+ " (select a.id ,a.name ,a.vendor_id , nvl(h.id,0) viwe ,v.vendor_name,c.c_id from app a "
+ "left join hot h on a.id = h.app_id "
+ "left join vendor v on a.vendor_id = v.id "
+ "left join category_app_rel c on a.id = c.app_id "
+ "where a.state=0 and $like(a.name,app_name) and $equal(a.id,app_id)) x "
+ "left join category cy on x.c_id= cy.id "
+ " order by viwe desc");
/*sb.append(" and $like(NAME,app_name)");
sb.append(" and $equal(A.ID,app_id)");*/
return db.getListResultByPage(bus, new SqlInfo(String.valueOf(sb)));