Correct, and you could try this custom report (I just edited one Jono sent for me to import from packages which didn't work nice with addon companies):
Query:
SELECT `contacts`.`first_name`, `contacts`.`last_name`, `contacts`.`company`, `contacts`.`title`, `contacts`.`address1`, `contacts`.`address2`, `contacts`.`city`, `contacts`.`country`, `contacts`.`state`, `contacts`.`zip`, `contacts`.`email`, `users`.`username`
FROM `clients`
INNER JOIN `users` ON `users`.`id` = `clients`.`user_id`
INNER JOIN `contacts` ON `contacts`.`client_id` = `clients`.`id` AND `contacts`.`contact_type` = 'primary';
One Jono sent me:
Query:
SELECT `contacts`.`first_name`, `contacts`.`last_name`, `contacts`.`company`, `contacts`.`title`, `contacts`.`address1`, `contacts`.`address2`, `contacts`.`city`, `contacts`.`country`, `contacts`.`state`, `contacts`.`zip`, `contacts`.`email`, `users`.`username`
FROM `packages`
INNER JOIN `package_pricing` ON `package_pricing`.`package_id` = `packages`.`id`
INNER JOIN `services` ON `services`.`pricing_id` = `package_pricing`.`id` AND `services`.`status` = 'active'
INNER JOIN `clients` ON `clients`.`id` = `services`.`client_id`
INNER JOIN `users` ON `users`.`id` = `clients`.`user_id`
INNER JOIN `contacts` ON `contacts`.`client_id` = `clients`.`id` AND `contacts`.`contact_type` = 'primary'
WHERE `packages`.`id` IN (:package_ids)
GROUP BY `clients`.`id`;
Fields
Label: Package Ids
Name: package_ids
Type: Text
Required: Yes
When generating the report, enter package ids as a comma separated list (e.g. 23,24,81).