天天看點

sql 一對多查詢分頁

原理:先對主表進行了分頁查詢,然後再進行關聯查詢(下面用mysql舉例)

重點部分是(select * from user limit 0,2) u ,其實這句就是對主表先進行了一次分頁查詢,并查出所有資料,那麼接下來的關聯查詢,就會在這個主表查詢出來的結果裡進行了

SELECT
	u.id,
	u.login_name,
	u.remark,
	r.id AS role_id,
	r.role_name,
	r.app_id,
	r.web_page_ids,
	r.remark AS roleRemark,
	f.id AS function_id,
	f.function_name,
	f.function_icon,
	f.url,
	f.remark AS functionRemark
FROM
	(select * from user limit 0,2) u
LEFT JOIN user_role ur ON u.id = ur.user_id
LEFT JOIN role r ON ur.role_id = r.id
LEFT JOIN user_function uf ON u.id = uf.user_id
LEFT JOIN FUNCTION f ON uf.function_id = f.id
           

下面這出一張效果圖,隻查詢出了前面兩個使用者,而前面查出來的16條資料,都是屬于使用者1的。

sql 一對多查詢分頁