Query شمارنده لایک هر پست به همراه مشخص کردن user_id

با درود خدمت دوستان گرامی.

در قسمت مطالب وب سایتم من تمام مطالب رو می یارم به همراه هر مطلب چند لایک خورده. حال می خوام تمام اون مطالب رو بیاره و اگر کاربر در سایت لاگین هست بگه این مطلب رو لایک کرده یا نه!!

مشکل اینجاست که اگر من where بزنم به جدول users دیگه تمام رکورد هارو نمی یاره

برای مثال ساده تر:

from(post in Post,
      join: cat in assoc(post, :blog_categories),
      left_join: like in assoc(post, :blog_likes)
      group_by: [post.id, cat.id, like.post_id],
      select: %{
        title: post.title,
        category_title: cat.title,
        like_count: count(like.id)
      }
    )

در query بالا من اومدم تمام پست هارو لود کردم و هر پست هرچند تعداد لایک داشت رو هم شمردم حالا چطور مشخص کنم کاربرم با user_id که الان لاگین هست این پست رو لایک کرده یا نه!! تاثیری تو لود کامل پست هام نداشته باشه فقط یک پارامتر اضافه بشه در سلکت که true یا false باشه

مثلا:

select: %{
  title: post.title,
  category_title: cat.title,
  like_count: count(like.id),
  user_liked: true
}

دیتابیس: پستگرس هست و جدول blog_likes با جدول users رلیشن داره روی user_id

با subquery درش آوردم فعلن که داره کار می کنه امید وارم به مشکل نخوره :smiley:

left_join: liked_user in subquery(UserLiked.user_liked),
      on: liked_user.user_id == ^user_id and liked_user.post_id == post.id

کواری که توش لود شده:

def user_liked() do
    from(like in BlogLike,
    select: %{post_id: like.post_id, user_id: like.user_id})
  end
1 Likes