Comment vérifier si les lignes existent pendant une requête de jointure de recherche MySQL?
Question
J'ai cette requête de recherche SQL qui fonctionne, mais cela ne fonctionne que si les votes existent dans le tableau des votes.
mysql_query("SELECT m.Title, r.Subject, SUM(v.IsGood) AS Good, SUM(v.IsBad) AS Bad
FROM Movies m
JOIN Reviews r
ON m.ID=r.MovieID
JOIN Votes v
ON r.ID=v.ReviewID
WHERE (m.Title LIKE '%" . $search . "%' OR r.Subject LIKE '%" . $search . "%')
GROUP BY m.Title, r.Subject
ORDER BY SUM(v.IsGood) DESC, SUM(v.IsBad) ASC LIMIT 10")
Je l'ai donc changé ci-dessous, de sorte que peu importe s'il y a 0 votes, cela devrait toujours montrer. Mais cela n'attire aucun résultat, quelqu'un peut me dire ce que je fais de mal?
mysql_query("SELECT m.Title, r.Subject, COUNT(v.ReviewID) AS Rvotes, SUM(v.IsGood) AS Good, SUM(v.IsBad) AS Bad
FROM Movies m
JOIN Reviews r
ON m.ID=r.MovieID
JOIN Votes v
ON r.ID=v.ReviewID
WHERE (m.Title LIKE '%" . $search . "%' OR r.Subject LIKE '%" . $search . "%')
GROUP BY m.Title, r.Subject, v.ReviewID
HAVING Rvotes >= 0
ORDER BY SUM(v.IsGood) DESC, SUM(v.IsBad) ASC LIMIT 10")
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow