Генерация JSON с вложенными объектами
Вас чем-то не устраивает

SELECT ...
FROM posts p
JOIN users u ON u.userid = p.userid

или, быть может, я не понял вопроса?
Слишком мало деталей для ответа на вопрос, потому что существует большое множество ответов — например, воспользоваться ORM, скажем, если вы пишете веб-сервис на .NET, можно воспользоваться Entity Framework или LINQ to SQL:

public IList<Post> GetPosts(Guid userId)
{
    using (var context = new DbContext())
    {
        return (from p in context.Posts
            where p.User.Id == userId
            select p).ToList();
    }
}

//...

public class DbContext: DataContext
{
    public Table<Post> Posts { return GetTable<Post>(); }
    public Table<User> Users { return GetTable<User>(); }
    public DbContext(string connectionString):base(connectionString) { }
}

[Table]
public class Post
{
    [Column(IsPrimaryKey = true)]
    public int Id { get; set; }
    [Column]private int _userId;
    private EntityRef<User> _user;
    [Association(Storage = "_user", IsForeignKey = true, ThisKey = "Id")]
    public User User
    {
        get { return _user.Entity; }
        set { _user.Entity = value;_userId = value.Id; }
    }
// ...
}

[Table]
public class User
{
    [Column(IsPrimaryKey = true)]
    public int Id { get; set; }
    
    [Association(OtherKey = "_userId")]private EntitySet<Post> _posts;
// ...
}
