I have a product entity in which it has an array as attributes:
/**
* @ORM\\OneToMany(targetEntity=\"Shopious\\MainBundle\\Entity\\ProductPicture\"
Try something like this, if it's a one to many, the normal mySQL behaviour is returning several records with redundant product data, if the same case happens here, then only returning the first record should do the trick.
PS: assuming the ProductPicture entity has a url property that you want to get
$query = $em->createQueryBuilder()->select('p.id, p.name, pictures.url')
->from("SiteMainBundle:Product", 'p')
->innerJoin('p.category', 'c')
->innerJoin('p.shop', 'shop')
->innerJoin('p.pictures', 'pictures')
;