У меня есть три таблицы, которые мне нужно использовать для поиска, фильмов, обзоров и голосов.Я хочу использовать функцию LIKE для Movie.Title и Review.Subject и упорядочить их по количеству голосов, полученных за каждое совпадение.
В таблице голосов есть ReviewID, UserID, IsGood.Каждый раз, когда пользователь голосует, делается вставка с MovieID, UserID и 1 или 0 для IsGood, 1 означает хороший 0 означает плохой.
Таким образом, один отзыв может иметь 0 хороших и плохих голосов, или 5хорошо и 3 плохо, и т. д. Я хотел бы показать результаты в следующем порядке:
Отзыв 1 - 10Хорошо / 3Bad
Обзор 2 - 4Хорошо/ 3Bad
Обзор 3 - 0Хорошо / 0Bad
Матчи с самыми хорошими голосами сверху, с самыми плохими голосами внизу.
Это запрос mysql, который я написал, и он явно неверен, но надеется, что кто-то может мне помочь:
mysql_query("
SELECT m.Title, r.Subject, v.ReviewID FROM Movies m
LEFT JOIN Reviews r
ON m.ID=r.MovieID
INNER JOIN Votes v
ON r.ID=v.ReviewID
WHERE (m.Title LIKE '%" . $search . "%'
OR r.Subject LIKE '%" . $search . "%')
ORDER BY MAX(COUNT(v.IsGood='1')) LIMIT 10")or die(mysql_error());