SQL запрос со сложным условием

Sanu0074
На сайте с 31.08.2012
Offline
110
446

для теста есть таблицы products, likes, coments, нужно одним запросом выбрать те записи из products у которых likes>12 и в comments есть записи с author_id=22.

Связь такая, у products есть id, у likes и coments есть соответствующие поля product_id.

Если для подобной выборки можно использовать JOIN, то как быть с таким условием в данном случае?

siv1987
На сайте с 02.04.2009
Offline
427
#1

SELECT p.* FROM products p INNER JOIN likes l ON l.product_id=p.id INNER JOIN coments c ON c.product_id=p.id WHERE l.likes>22 AND c.author_id=22

имена полей и таблиц заменить на свои.

ДП
На сайте с 23.11.2009
Offline
203
#2


SELECT
`p`.*
FROM `products` AS `p`
INNER JOIN `likes` AS `l` ON `p`.`id` = `l`.`product_id`
INNER JOIN `comments` AS `c` ON `p`.`id` = `c`.`product_id` AND `c`.`author` = 22
GROUP BY `p`.`id`
HAVING COUNT(`l`.`id`) > 12

возможно еще с группировкой придется поправить, ибо комментов может быть несколько.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий