Doublons
Posté : 13 mars 2008, 14:46
Bonjour à tous,
je solicite votre aide pour supprimer des doublons lors d'une requête.
Voilà ma requête de base.
Quelqu'un aurait il un petit conseil ? Y a t'il une autre maniére de pouvoir supprimer les doublons autre qu'avec DISTINCT qui est plutôt lent à ce que je crois savoir.
Voila le format de mes tables
Merci à tous.[/code]
je solicite votre aide pour supprimer des doublons lors d'une requête.
Voilà ma requête de base.
$this->ipsclass->DB->simple_construct( array( 'select' => 'p.s_id, p.user_id, t.post_date, t.s_name, t.user_name, t.s_art, t.s_art_tn, t.s_art_type, t.user_id, t.cat_id, t.t_version, t.s_artist, t.price',
'from' => "mlite_played p LEFT JOIN ".SQL_PREFIX."mlite_songs t ON (p.s_id=t.s_id)",
'where' => 't.s_private=0 AND t.s_open=1 AND p.user_id!=t.user_id',
'order' => 'p.p_id DESC',
'limit' => array(0, intval($this->ipsclass->vars['nbr_lp']))
));
J'ai essayer d'utiliser DISTINCT(p.s_id) avec et sans 'GROUP BY p.s_id' mais je n'obtiens pas le résultat voulu. J'aurais aimer que ma requete supprime les doublons et me les class par 'p.p_id DESC' Quelqu'un aurait il un petit conseil ? Y a t'il une autre maniére de pouvoir supprimer les doublons autre qu'avec DISTINCT qui est plutôt lent à ce que je crois savoir.
Voila le format de mes tables
Code : Tout sélectionner
CREATE TABLE `played` (
`p_id` int(11) NOT NULL auto_increment,
`s_id` int(11) NOT NULL default '0',
`user_id` mediumint(8) NOT NULL default '0',
PRIMARY KEY (`p_id`),
KEY `s_id` (`s_id`)
) ENGINE=MyISAM AUTO_INCREMENT=425 DEFAULT CHARSET=latin1Code : Tout sélectionner
CREATE TABLE `songs` (
`s_id` int(11) NOT NULL auto_increment,
`s_name` varchar(255) NOT NULL default '',
`s_artist` varchar(255) NOT NULL default '',
`s_info` text NOT NULL,
`s_art` text NOT NULL,
`s_art_tn` text NOT NULL,
`s_art_type` varchar(15) NOT NULL default 'local',
`s_hits` int(11) NOT NULL default '0',
`s_downloads` int(11) NOT NULL default '0',
`s_rate` int(11) NOT NULL default '0',
`s_rate_count` int(11) NOT NULL default '0',
`s_score` int(255) NOT NULL default '0',
`s_real` varchar(255) NOT NULL default '',
`s_url` text NOT NULL,
`s_size` int(10) NOT NULL default '0',
`s_mime` varchar(255) NOT NULL default '',
`s_mime_img` text NOT NULL,
`s_ext` varchar(10) NOT NULL default '',
`s_playtime` int(10) default NULL,
`s_frequency` int(5) default NULL,
`s_channel` enum('mono','stereo','joint stereo','dual channel') default NULL,
`s_bitrate` int(5) default NULL,
`s_type` varchar(15) NOT NULL default 'local',
`s_open` tinyint(1) NOT NULL default '1',
`s_report` int(11) NOT NULL default '0',
`s_status` varchar(15) NOT NULL default '',
`s_topic` int(10) NOT NULL default '0',
`cat_parent` int(11) NOT NULL default '0',
`cat_id` int(11) NOT NULL default '0',
`user_id` mediumint(8) NOT NULL default '0',
`user_name` varchar(255) NOT NULL default '',
`ip_address` varchar(64) default NULL,
`post_date` int(10) NOT NULL default '0',
`last_update` int(10) NOT NULL default '0',
`s_bpm` int(3) NOT NULL default '0',
`s_podcast` int(1) NOT NULL default '1',
`furl` varchar(255) NOT NULL default '',
`auto_delete` int(11) NOT NULL default '0',
`views` int(255) NOT NULL default '0',
`epromo_date` int(11) NOT NULL default '0',
`epromoter` mediumint(8) NOT NULL default '0',
`epromoter_name` varchar(255) NOT NULL default '',
`s_private` int(1) NOT NULL default '0',
`price` decimal(4,2) NOT NULL default '0.00',
`t_version` varchar(255) NOT NULL,
`t_label` varchar(255) NOT NULL,
`t_auth` varchar(255) NOT NULL,
`t_compo` varchar(255) NOT NULL,
`t_publisher` varchar(255) NOT NULL,
`t_original_id` int(11) NOT NULL default '0',
PRIMARY KEY (`s_id`),
KEY `cat_id` (`cat_id`)
) ENGINE=MyISAM AUTO_INCREMENT=41 DEFAULT CHARSET=latin1Merci à tous.[/code]