You can override
Magento\Catalog\Model\ResourceModel\Product\Collection class and join your custom collection with using _initSelect() function
Example:
protected function _initSelect()
{
$this->getSelect()->joinRight(
['secondTable' => $this->getTable('custom_table')],
'secondTable.id = main_table.entity_id');
return $this;
}