En utilisant this SO answer J'ai créé la requête suivante:Comment convertir cette sous-requête dans une jointure?
select
created, property_id, requesting_user_id, type, response
from
pdr t1
where
t1.created = (
select max(created)
from pdr t2
where t2.property_id = t1.property_id and t2.requesting_user_id = t1.requesting_user_id
)
Cela fonctionne comme un charme, mais maintenant je veux transformer ce (également suggéré dans la réponse que je SO lien ci-dessus) à une requête en utilisant une jointure . Alors je suis venu avec ceci:
select
created, property_id, requesting_user_id, type, response
from
pdr t1
inner join (
select max(created) as created, property_id, requesting_user_id
from pdr
group by property_id, requesting_user_id
) as t2 on t2.property_id = t1.property_id and t2.requesting_user_id = t1.requesting_user_id and t2.created = t1.created
Malheureusement, cela renvoie une erreur en disant ambiguous column name: created
. Donc je me suis trompé en mettant t1.
ou t2.
avant certaines des choses créées, mais ensuite je reçois toutes sortes d'erreurs de syntaxe, donc je suis un peu perdu ici.
Quelqu'un pourrait-il m'aider dans ce que je fais mal ici? Tous les conseils sont les bienvenus! Ps: Je suis actuellement en train de tester cela sur SQLite, mais à la fin cela devrait aussi fonctionner sur MySQL. S'il y a une différence, il serait bien sûr très intéressant de savoir aussi.
essayer de sélectionner d'abord comme -> SELECT t1.created, t1.property_id, t1.requesting_user_id ... cela devrait fonctionner dans MySQL basé sur https://dev.mysql.com/doc/refman/5.1/fr/example-maximum-column-group-row. html –
@AleksandarMiladinovic - C'était tout. Merci! Si vous ajoutez votre commentaire en réponse, je peux l'accepter. – kramer65
De rien. Je suis heureux d'avoir pu aider :) –