Programmation » [SQL] probleme de jointure
Rappel du message précédent
[SQL] probleme de jointure
Publié le 21/12/2007 @ 13:19:11,
Par kortenbergC'est un peu pour cela que j'ai écrit
Dernière édition: 21/12/2007 @ 13:24:18
Comme l'a proposé keeper, au début, on peut le faire avec un deuxième join ...
Dernière édition: 21/12/2007 @ 13:24:18
[SQL] probleme de jointure
Publié le 21/12/2007 @ 13:25:28,
Par cauet- SELECT
- `envoi_push`.`content`,
- `confirm_push`.`status`
- FROM
- `envoi_push`
- JOIN
- ( SELECT *
- FROM `confirm_push`
- WHERE `confirm_push`.id IN (
- SELECT Max(id)
- FROM `confirm_push`
- GROUP BY `confirm_push`.`msgid`
- )
- ) AS `confirm_push`
- ON `envoi_push`.`status` = `confirm_push`.`msgid` LIMIT 10;
Ca j'avais encore jamais vu une requête mySQL qui fout phpmyadmin par terre (et une série de process Apache)
Structure de la table:
- CREATE TABLE IF NOT EXISTS `envoi_push` (
- `id` int(11) NOT NULL auto_increment,
- `nichandle` varchar(50) NOT NULL,
- `number` varchar(15) NOT NULL,
- `content` varchar(160) NOT NULL,
- `sendertype` varchar(10) NOT NULL,
- `senderid` varchar(15) NOT NULL,
- `typecontent` varchar(10) NOT NULL,
- `udh` varchar(500) NOT NULL,
- `status` int(10) NOT NULL,
- `error` varchar(10) NOT NULL,
- `date` datetime NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=130605 ;
- --
- -- Contenu de la table `envoi_push`
- --
- INSERT INTO `envoi_push` (`id`, `nichandle`, `number`, `content`, `sendertype`, `senderid`, `typecontent`, `udh`, `status`, `error`, `date`) VALUES
- (130602, 'mickael', '32472892611', 'hi', 'number', '3235559657', 'text', '', 3421301, '', '2007-12-21 07:45:09');
- CREATE TABLE IF NOT EXISTS `confirm_push` (
- `id` int(11) NOT NULL auto_increment,
- `msgid` int(11) NOT NULL,
- `status` varchar(35) NOT NULL,
- `date` datetime NOT NULL,
- KEY `msgid` (`msgid`),
- KEY `id` (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=235057 ;
- --
- -- Contenu de la table `confirm_push`
- --
- INSERT INTO `confirm_push` (`id`, `msgid`, `status`, `date`) VALUES
- (235051, 3421301, 'operator', '2007-12-21 07:45:28'),
- (235052, 3421301, 'handset', '2007-12-21 07:45:33');
[SQL] probleme de jointure
Publié le 21/12/2007 @ 17:32:03,
Par ClandestinoPourquoi tu forces l'envoi de valeurs nulles dans des champs qui ne peuvent pas l'être ? (udh et error) ?
[SQL] probleme de jointure
Publié le 21/12/2007 @ 18:04:53,
Par Keeperchaine vide <> valeur nulle
[SQL] probleme de jointure
Publié le 17/01/2008 @ 22:25:22,
Par cauetVoila la requête "au propre"
Sur serveur de Test avec 1 enregistrement, elle fonctionne.
Par contre en Prod avec des milliers de records, ca foire total.
La requête n'en finit pas, je laisse tourner plus de 3 minutes sans réponse, avant de killer.
Une idée ?
- SELECT
- `envoi_push`.`content`,
- `confirm_push`.`status`
- FROM
- `envoi_push`
- JOIN
- ( SELECT `status`, `msgid`
- FROM `confirm_push`
- WHERE `confirm_push`.`id` IN (
- SELECT Max(`id`)
- FROM `confirm_push`
- GROUP BY `confirm_push`.`msgid`
- )
- ) AS `confirm_push`
- ON `envoi_push`.`status` = `confirm_push`.`msgid`
- ORDER by `confirm_push`.`status` ASC
- LIMIT 10;
Sur serveur de Test avec 1 enregistrement, elle fonctionne.
Par contre en Prod avec des milliers de records, ca foire total.
La requête n'en finit pas, je laisse tourner plus de 3 minutes sans réponse, avant de killer.
Une idée ?
[SQL] probleme de jointure
Publié le 18/01/2008 @ 10:21:49,
Par blietaerMmh quand je fais des selects sur deux tables en one-shot, je prefere toujours des LEFT JOIN plutot que les nested-select de beauf, sauf si les tables ne sont pas 1-to-1 keyable...mais là on parlera de malchance ou de mal-design...
En plus dans ton cas les msgid et status on l'air de bien flirter ensemble, non?
sur le flex, ca devrait groover.
Mais vraiment change de pseudo, la qualité des cauetidienne te hape au passage vers l'abime de la médiocrité télévisuelle et dans la tristesse du trou-noir intergalactique créatif dont elles font preuve sans que, à priori, tu n'y sois pour quoi que ce soit.
Dernière édition: 18/01/2008 @ 10:22:48
En plus dans ton cas les msgid et status on l'air de bien flirter ensemble, non?
sur le flex, ca devrait groover.
Mais vraiment change de pseudo, la qualité des cauetidienne te hape au passage vers l'abime de la médiocrité télévisuelle et dans la tristesse du trou-noir intergalactique créatif dont elles font preuve sans que, à priori, tu n'y sois pour quoi que ce soit.
Dernière édition: 18/01/2008 @ 10:22:48
Et au besoin s'arrêter.