如果作为第三方被认可的服务商的话,是可以代替客户进行各类操作的,这样批量操作可以节省很多时间。现在我们这篇博客的重点不是这个,而是在这个场景下产生的sql的思路。因为批量操作的这些数据都是存入同一个表的,怎么操作的呢?
如该表就是存数据的,那么问题来了,如果对一个表进行多次左关联呢?
SELECT
`s`.`id`,
`s`.`name`,
`s`.`is_live`,
`wa`.`id` AS `wa_id`,
`wa`.`version` AS `new_version`,
`wa`.`status`,
`wa`.`add_time`,
`wa`.`commit_time`,
`wa`.`audit_store_id`,
`a`.`version`,
`wa`.`reason`
FROM
`xcxmall_store` `s`
LEFT JOIN ( SELECT * FROM ( SELECT * FROM `xcxmall_wechat_audit` ORDER BY id DESC ) b GROUP BY b.store_id ) `wa` ON wa.store_id = s.id
LEFT JOIN ( SELECT * FROM ( SELECT * FROM `xcxmall_wechat_audit` ORDER BY id DESC ) c WHERE STATUS = 6 GROUP BY c.store_id ) `a` ON a.store_id = s.id
WHERE
`s`.`is_delete` =0
//sql场景说明:商户表中如果是还没删除的;关联这个sql:SELECT * FROM ( SELECT * FROM `xcxmall_wechat_audit` ORDER BY id DESC,因为这个是获取最新记录;再关联:SELECT * FROM ( SELECT * FROM `xcxmall_wechat_audit` ORDER BY id DESC ) c WHERE STATUS = 6 GROUP BY c.store_id,根据status状态值不同;经过这些关联之后就能找到自己想要的数据了