How to get struct in array

@shahryarjb: I assumed you want to fetch online titles. If so then easier is to call specific query.

defmodule Example do
  import Ecto.Query

  # aliases for Post and PostCategory here

  def sample(seo_alias_link, group_acl) do
    query =
      from(
        post_category in PostCategory,
        join: post in assoc(post_category, :cms_post)
        order_by: post_category.inserted_at,
        limit: 10,
        preload: [cms_post: post],
        where: p.seo_alias_link == ^seo_alias_link
      )

    if group_acl == "admin" do
      query
    else
      where(
        query,
        [post_category, post],
        post_category.group_acl == ^group_acl and post.group_acl == ^group_acl
      )
    end

    query
    |> Repo.all()
    |> Enum.map(& &1.cms_post)
    |> List.flatten()
    |> Enum.map(& &1.title)
  end
end

Example.sample("jsjsjs", "admin")