[MYSQL] supprimer 'doublon' lors d'un select

supprimer 'doublon' lors d'un select [MYSQL] - SQL/NoSQL - Programmation

Marsh Posté le 25-04-2008 à 18:59:37    

Hello,  
 
a mes heures perdues au boulot je fait un peu de dev php/perl/mysql pour réaliser des petites applis utilisables en interne.
Comme ce n'est pas du tout mon travail, je ne maitrise pas vraiment sql mais assez pour faire ce dont j'ai besoin.
 
Je développe actuellement une sorte d'intranet de gestion de stock et j'aurais une petite question a vous poser.
 
Voici un schéma très simplifié (avec des noms bateaux) de mes tables :  
 
objet (id, nom);
action (id, description, objet_id);
 
 
en gros j'ai des objets dans le stock sur lequel je fait des actions (ajout dans le stock, sortie du stock, retour dans le stock, modification etc)
 
 
Je voudrais une requete qui me permette d'avoir la liste des objets dans le stock ainsi que la derniere action associée.
 
Si je fais :  
select o.nom, a.description from objet o, action a where a.objet_id=o.id;
 
il me sortira autant de lignes par objet que d'action qu'il lui sont attribuées.
 
Est ce que qqn aurait l'astuce ?
 
Merci :jap:


Message édité par tifrere le 25-04-2008 à 19:00:38
Reply

Marsh Posté le 25-04-2008 à 18:59:37   

Reply

Marsh Posté le 25-04-2008 à 19:01:19    

select distinct ... ?

Reply

Marsh Posté le 25-04-2008 à 19:03:35    

quand tu fais un distinct il faut ne selectionner qu'une colone non ?
 
et si je fais le distinct sur tout il me sortira la meme chose.


Message édité par tifrere le 25-04-2008 à 19:03:52
Reply

Marsh Posté le 25-04-2008 à 19:05:21    

ce ne sont pas vraiment des doublons (d'où 'doublon' entre guillemets dans le titre du topic) car les tuples sont tous uniques je voudrais juste avoir seulement o.id d'unique.


Message édité par tifrere le 25-04-2008 à 19:06:16
Reply

Marsh Posté le 26-04-2008 à 00:46:29    

qqn a une idée ? je pense que ça ne dois pas être sorcier mais pour l'instant ça m'échappe...a vrai dire, j'ai pas bcp creusé non plus :D

Reply

Marsh Posté le 26-04-2008 à 13:30:49    

alors cherche. Le distinct fonctionnera si tu l'utilises correctement. Sinon il y a toujours moyen de s'en passer aussi, mais alors la query devient tout de suite beaucoup plus compliquée.

Reply

Marsh Posté le 28-04-2008 à 09:16:25    

finalement j'ai trouvé un moyen détourné de faire ce que je voulais même si ce n'est pas très propre.
 
Lorsqu'une action est faite sur l'objet je met à jour un champ date dans l'objet ainsi qu'un champ date dans l'action. Il y a juste à comparer que les 2 champs dates soient les même :)
 
merci à ceux qui ont bien voulu m'aider.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed