Мое решение моего вопроса
$database = Database::openConnection();
$query = "SELECT * FROM (";
$query .= "SELECT 'comments_product' AS target, CP.content AS content, CP.created AS created, U.name, P.id AS product_id ";
$query .= "FROM users as U, product as P, comments_product as CP WHERE U.id=CP.user_id AND P.id=CP.product_id AND CP.user_id=:user_id1";
$query .= " UNION ";
$query .= "SELECT 'comments_review' AS target, CR.content AS content, CR.created AS created, U.name, Q.id AS product_id ";
$query .= "FROM users AS U, product as P, comments_review AS CR WHERE U.id=CR.user_id AND CR.user_id=:user_id2";
$query .= " AND P.id=(SELECT product_id FROM review WHERE id=CR.review_id)";
$query .= ") AS comments ORDER BY created DESC";
$database->prepare($query);
$database->bindValue(':user_id1', $userId);
$database->bindValue(':user_id2', $userId);
$database->execute();
debug($database->fetchAllAssociative());