2017-01-10 2 views
0

У меня есть две таблицы information_business и business_likes.Результат подсчета запроса и использование его в запросе

Таблица-1: - information_business имеет поля id , name , address , dt_added и т.д.

Таблица-2: - business_likes имеет поля id , business_id , user_id , status(1=> like , 0 => unlike)

Если кто-то, как бизнес я вставляя новые данные в таблице business_likes как business_id, user_id и status = 1, и если один и тот же человек не любит эту строку, обновляется.

Сейчас мой вопрос: Я хочу выбрать весь бизнес с наивысшим числом понравившихся - это первое и самое низкое количество просмотров в последний раз.

Если какой-либо бизнес имеет нулевые значения, то все предприятия с нулевым числом считаются последними.

Я пробовал столько запросов, но ничего не работает для меня.

Запрос:

SELECT *, (SELECT COUNT(status) 
FROM business_likes) AS business_likes_count 
FROM `business_likes` 
LEFT JOIN information_business ON information_business.id = business_likes.business_id 
ORDER BY business_likes.id 

ответ

2

Попробуйте этот SQL: вы можете использовать group by on business id и ORDER BY business_likes_count DESC, если вы хотите, наибольшее значение на первом месте.

 SELECT information_business.*,COUNT(status) as business_likes_count FROM `business_likes` JOIN information_business 
ON information_business.id= business_likes.business_id group by business_likes.business_id ORDER BY business_likes_count DESC; 
+0

Отлично отлично работает. :) – Bhavin

+0

@Bhavin then Вы можете отметить это как ответ. –

+0

Да, когда я позволю мне;) – Bhavin

Смежные вопросы