Я хочу выбрать результаты по нескольким таблицам, но я хочу только возвращать строки на основе результата COUNT()
из присоединенного запроса SELECT
.MySQL Присоединился к SELECT COUNT()
Вот как запрос выглядит на данный момент:
SELECT `s`.`venue_id` AS `id`,
CONCAT(`u`.`First_name`, ' ', `u`.`Surname`) AS `user_name`,
`u`.`avatar` AS `avatar`,
`u`.`facebookId` AS `fid`,
`x`.`imgs` AS `num_imgs`
FROM `new_shortlists_venues` `s`
INNER JOIN `new_shortlists` ON `new_shortlists`.`id` = `s`.`list_id`
INNER JOIN `users` `u` ON `u`.`id` = `new_shortlists`.`bride_id`
LEFT JOIN (SELECT `listing_id`, COUNT(*) `imgs` FROM `listingsImages`) `x` ON `s`.`venue_id` = `x`.`listing_id`
WHERE `new_shortlists`.`venues` > 4
AND `new_shortlists`.`bride_id` != 0
GROUP BY `s`.`list_id`
ORDER BY `s`.`date_added` DESC
LIMIT 6
По какой-то причине, запрос возвращает NULL
для num_imgs
. По сути, я хотел бы выбрать только записи, которые имеют как минимум 4 записи в таблице listingsImages
.
Обратите внимание, что это для устаревшей системы, и я не проектировал БД! В результате у меня есть теперь возможность изменить схему.
Это здорово! Спасибо за вашу помощь. – BenM
@BenM - np, рад, что я мог бы помочь! – sgeddes