MySQL sous-Requête avec la requête principale variable de données
Ok, besoin d'une base MySQL gourou ici. Je suis en train d'écrire une requête qui va servir d'un système de notification lorsque quelqu'un laisse un commentaire sur un article que vous avez déjà commenté sur. Le " drinkComment la table est très simple:
commentID, userID, drinkID, datetime, comment
J'ai écrit une requête qui vous permettra d'obtenir tous les commentaires sur les boissons que j'ai déjà commenté (qui ne sont pas les miennes), mais il continue à afficher des commentaires qui ont eu lieu AVANT mon commentaire. C'est aussi près de ce que je pense pourrait fonctionner, mais il ne le fait pas. S'il vous plaît aider!
select @drinkID:=drinkComments.drinkID, commentID, drinkID, userID, comment, datetime
FROM drinkComments
WHERE `drinkID` IN
( select distinct drinkID from drinkComments where drinkComments.userID = 1)
AND drinkComments.dateTime > (
/*This gets the last date user commented on the main query's drinkID*/
select datetime FROM drinkComments WHERE drinkComments.userID = 1 AND drinkComments.drinkID = @drinkID ORDER BY datetime DESC LIMIT 1
)
ORDER BY datetime DESC
OriginalL'auteur adamweeks | 2011-05-19
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas commencer avec un prequery de l'utilisateur et toutes les boissons qu'ils ont offert des commentaires et que de ce temps (je ne sais pas si vous avez plusieurs commentaires par personne pour toute boisson ou pas). Ensuite, trouver des commentaires de tous les autres APRÈS votre date/heure commentaire...
Cette requête devrait en fait être beaucoup plus rapide qu'il est de COMMENCER avec UN seul UTILISATEUR boire des commentaires comme base, PUIS remonte aux commentaires de la table, pour ceux qui répondent à la boisson ID et le seuil de temps.
nous essayons d'offrir des solutions efficaces quand on aide les autres... Vous pouvez toujours modifier le "vérifié" réponse afin d'aider les futurs gens à aller à la meilleure solution que la première.
+1 Grand sous-requête tutoriel. Ne savais pas que j'avais besoin de sous-requête dans la
FROM
section pour accéder à ses résultats dans la requête principaleOriginalL'auteur DRapp
Je pense que vous avez besoin de relier votre intime de la requête au moyen de requêtes par drinkID.
Désolé, c'était l'édition de mon commentaire.
OriginalL'auteur Mr47