Ok, necesito un gurú de MySQL aquí. Estoy tratando de escribir una consulta que servirá como un sistema de notificación para cuando alguien deja un comentario sobre un elemento que ha comentado anteriormente. La tabla 'drinkComment' es muy simple:Subconsulta de MySQL con variable de datos de consulta principal
commentID, userID, drinkID, datetime, comment
He escrito una consulta que va a conseguir todos los comentarios sobre las bebidas que he comentado anteriormente en (que no son mías), pero todavía mostrará comentarios eso ocurrió ANTES de mi comentario. Esto es lo más parecido a lo que creo que funcionaría, pero no es así. ¡Por favor ayuda!
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
¡Muy buena solución! ¡Funciona y funciona más rápido! ¡Gracias! – adamweeks
@AdamWeeks, tratamos de ofrecer soluciones eficientes cuando ayudamos a otros ... Siempre puede cambiar la respuesta "comprobada" para ayudar a las personas futuras a obtener la mejor solución que la primera. – DRapp
+1 Gran tutorial de subconsulta. No me di cuenta de que necesitaba la subconsulta en la sección 'FROM' para acceder a sus resultados en la consulta principal – foochow