Product and Category relation in Database?

Yes, one to many with Product holding a category_id field.

Product belongs_to :category, Category...
Category has_many :products, Product...

But your join is not functional, maybe like this (not tested)

query = from p in Product,
  join: c in Category,
  on: p.category_id == c.id, 
  where: c.name == "Food",
  select: p