J'essaye de créer une requête unique qui, semblable au débordement de pile, me donnera le nombre de votes, mais s'assurera également que l'utilisateur actuellement de visualisation peut 't upvote encore s'ils ont déjà upvoted.Vérifier une valeur unique dans un compte, mais obtenir tous les résultats
ma requête ressemble actuellement
SELECT cid, text, COUNT(votes.parentid) FROM comments LEFT JOIN votes ON comments.cid=votes.parentid AND votes.type=3 WHERE comments.type=0 AND comments.parentid='$commentParentid' GROUP BY comments.cid
Mais je suis complètement stumpted sur la façon d'ajouter le contrôle pour voir si l'ID utilisateur est dans la table des votes.
L'autre option est d'ajouter une requête séparée où
SELECT COUNT(*) FROM votes WHERE userid='$userid' AND parentid='$commentParentid' AND type=3
Je suis juste de réaliser que je suis tellement perdu avec ce que je ne sais même pas vraiment ce que les étiquettes à fournir.
Merci Iggy, Qui a très bien fonctionné, et ajouté très peu de temps à la requête (jusqu'à présent sur un petit ensemble de données). Par curiosité, la façon dont vous dites «si j'insiste à le faire en sql», y a-t-il une autre façon de le recommander? – pedalpete
Vous avez essentiellement raison de vous soucier des performances, une seule requête complexe peut prendre plus de deux ou trois différentes et un certain nombre de calcul dans votre code. –