EDIT. J'ai raté le principal problème que j'avais. Je veux afficher toutes les lignes uniques 'device_MAC'. Je veux donc que cette requête génère 3 lignes (selon la requête d'origine). Le problème que je rencontre est la connexion de la table data
au tableau remote_node
via dt_short
= rn_short
où l'horodatage maximum pour dt_short
dans le tableau data
.MYSQL many to many 3 tables requête
Je rencontre des problèmes pour exécuter une requête sur 3 tables (2 ont plusieurs relations).
Ce que je suis en train de faire:
- Obtenez chaque
rn_IEEE
distinct de la tableremotenodes
avec l'horodatage maximale (dans l'exemple, il obtiendra 3 rangs avec 3 adresses courtes distinctesrn_short
) - Joignez-vous à la table
devicenames
sur device_IEEE - Obtenez chaque
dt_short
distinct de la tabledata
avec l'horodatage maximale - Rejoignez
dt_short
avecrn_short
de la requête ci-dessus
Maintenant, le problème, je suis en cours d'exécution en est que je peux faire les requêtes pour ce qui précède individuellement, j'ai même obtenu les 3 premiers d'entre eux ensemble dans une requête, mais je ne peux pas sembler joindre correctement le dernier bit de données pour obtenir le résultat que je veux.
Je suis allé en rond en essayant de résoudre ce problème. Voici un lien vers SQL Fiddle qui contient toutes les données de test et la requête autant que je l'ai eu, il fait ce que je veux pour la première ligne mais de table 'data' après la première ligne est NULL:
+1 pour votre effort. – hims056