Есть связанные таблицы
product (id, user_id, alias, title,category ...) - товар, user_id автор публикации
review (id, product_id, user_id, content,...) - отзыв о товаре, product_id - id товара, user_id автор товара
comments_product (id, product_id, user_id, content,...) - комментарий к товару, product_id - id товара, user_id автор товара
comments_review (id, review_id, user_id, content,...) - комментарий к отзыву, review_id- id отзыва, user_id автор товара
На странице профиля товара нужно вывести все комментарии пользователя, каждый комментарий должен содержать ссылку alias на товар его название и сам текст комментария, так как и комментарий и отзыв все находятся на странице продукта, как выбрать данные одним запросом исходя из таблиц comments_product и comments_review где user_id=? ?
Здесь пример как я делал для вывода с таблицы product и comments_product
$database = Database::openConnection();
$query = "SELECT product.id AS p_id, product.alias AS p_alias, product.title AS p_title,";
$query .= "users.id AS u_id, users.name AS u_name, ";
$query .= "comments_product .content AS c_p_content, ";
$query .= "categories.title AS cat_title ";
$query .= " FROM users, categories, product ";
$query .= " LEFT JOIN comments_product ON comments_product.user_id=:user_id AND comments_product.product_id=product .id ";
$query .= " WHERE product.id IN ( SELECT product_id FROM comments_product WHERE user_id=:user_id)";
$query .= " AND categories.code = product.category AND users.id= product.user_id";
$query .= " ORDER BY product.created DESC ";
$database->prepare($query);
$database->bindValue(':user_id', $userId);
$database->execute();
debug($database->fetchAllAssociative());