Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1099 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Limite sur jointure

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Limite sur jointure

n°2199190
Shadow aok
Moitié de demi en 3/4 d'entier
Posté le 01-08-2013 à 15:13:03  profilanswer
 

Hello,

 

Je cherche à faire une limite sur une jointure (ou autre moyen tant que ça reste léger) avec MySQL 5.1.

 
Code :
  1. * Table o
  2. o.id o.etat
  3. * Table a
  4. a.parent_id a.date a.champ a.nouvelle_valeur
 

Je veux sortir toutes les entrées de o dont l'état est X ET il me faut la date du dernier passage à X.
a contient les changements effectués sur o donc a.parent_id correspond à o.id.

 

Il faut donc pour toute entrée dans o dont etat = X, sortir l'id de o avec la date de la dernière entrée dans a dont a.champ = 'etat' et a.nouvelle_valeur = 'X'

 

Une idée simple ?
J'ai tenté en passant par une création de table temporaire mais comme o est déjà une grosse table et a est donc encore plus grosse, c'est lourd.

 

Merci.


Message édité par Shadow aok le 01-08-2013 à 15:13:29
mood
Publicité
Posté le 01-08-2013 à 15:13:03  profilanswer
 

n°2199194
sltpaulo
Posté le 01-08-2013 à 15:48:25  profilanswer
 

select o.id,a.date from o join a on a.etat=o.champ where a.nouvelle_valeur='X' order by a.date desc group by id
 
??

n°2199195
Shadow aok
Moitié de demi en 3/4 d'entier
Posté le 01-08-2013 à 16:05:38  profilanswer
 

Sauf que tu ne peux pas faire un group by après un order.
Donc en tant que tel, j'aurai la date de la première entrée et non de la dernière.


Message édité par Shadow aok le 01-08-2013 à 16:08:22
n°2199198
Shadow aok
Moitié de demi en 3/4 d'entier
Posté le 01-08-2013 à 16:13:05  profilanswer
 

Résolu en faisant comme ceci, comme quoi, rien ne sert de chercher compliqué :

Code :
  1. SELECT o.id, (SELECT a.date  FROM a WHERE a.parent_id = o.id AND a.champ = 'etat' AND a.nouvelle_valeur = 'X' ORDER BY a.date DESC LIMIT 1) as date
  2. FROM o
  3. WHERE o.etat = 'X'


Message édité par Shadow aok le 01-08-2013 à 16:13:21
n°2199243
flo850
moi je
Posté le 02-08-2013 à 09:17:31  profilanswer
 

Select o.id, max(a.date) from a inner join on .....


---------------


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Limite sur jointure

 

Sujets relatifs
Formulaire et date et MySQL[SQL/ACCESS] Requête Jointure + imbrication?
[JS] Problème limite d'une variable atteinte[MySQL] - Requête SQL sur plusieurs tables
tri-fusion, jointure par hachage et boucles imbriquéesBatch Mise a jour BDD Mysql
peties question php/mysql sur le nombre de reqRECHERCHE Developpeur php - mvc - css - javascript - mysql
Sortir des infos d'une base MySQL à partir d'un fichier txt ou csvCréer un menu qui liste les noms des champs d'une table mysql
Plus de sujets relatifs à : [MySQL] Limite sur jointure


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR