feat: use common table expression to improve user profile sql

This commit is contained in:
Zack Fu Zi Xiang 2024-09-03 12:08:37 +08:00
parent b7c93362a1
commit 0fc6a3c4e7
No known key found for this signature in database
1 changed files with 20 additions and 2 deletions

View File

@ -584,8 +584,26 @@ pub async fn select_user_profile<'a, E: Executor<'a, Database = Postgres>>(
let user_profile = sqlx::query_as!(
AFUserProfileRow,
r#"
SELECT *
FROM public.af_user_profile_view WHERE uuid = $1
WITH af_user_row AS (
SELECT * FROM af_user WHERE uuid = $1
)
SELECT
af_user_row.uid,
af_user_row.uuid,
af_user_row.email,
af_user_row.password,
af_user_row.name,
af_user_row.metadata,
af_user_row.encryption_sign,
af_user_row.deleted_at,
af_user_row.updated_at,
af_user_row.created_at,
(SELECT workspace_id
FROM af_workspace_member
WHERE uid = af_user_row.uid
ORDER BY updated_at DESC
LIMIT 1) as latest_workspace_id
FROM af_user_row
"#,
user_uuid
)