Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2009, 18:15
Avatar de p4bl1t0
p4bl1t0
 
Fecha de Ingreso: marzo-2006
Mensajes: 29
Antigüedad: 19 años
Puntos: 0
Exclamación convertir subconsulta en joins

que tal amigos tengo las siguientes 3 tablas

Código PHP:
CREATE TABLE `estudiante` (
  `
idestudianteint(10unsigned NOT NULL auto_increment,
  `
correovarchar(65) default NULL,
  `
usuario_idusuarioint(10unsigned NOT NULL default '0',
  
PRIMARY KEY  (`idestudiante`)
TYPE=MyISAM AUTO_INCREMENT=37 ;

INSERT INTO `estudianteVALUES (1'estudainteaws.com'91654123);
INSERT INTO `estudianteVALUES (2'elpopularpirishotmail.com'91519095);
INSERT INTO `estudianteVALUES (3'freddyhotmail.com'91654546);

CREATE TABLE `estudiantegrupo` (
  `
idestudiantegrupoint(10unsigned NOT NULL auto_increment,
  `
grupo_idgrupoint(10unsigned NOT NULL default '0',
  `
estudiante_idestudianteint(10unsigned NOT NULL default '0',
  
PRIMARY KEY  (`idestudiantegrupo`),
  
KEY `fkestudiante` (`estudiante_idestudiante`),
  
KEY `fkgrupo` (`grupo_idgrupo`)
TYPE=MyISAM AUTO_INCREMENT=;

INSERT INTO `estudiantegrupoVALUES (111);
INSERT INTO `estudiantegrupoVALUES (212);
INSERT INTO `estudiantegrupoVALUES (313);
INSERT INTO `estudiantegrupoVALUES (472);

CREATE TABLE `usuario` (
  `
idusuariovarchar(20NOT NULL default '',
  `
nombrevarchar(45) default NULL,
  `
apellidovarchar(45) default NULL,
  `
loginvarchar(20) default NULL,
  `
passvarchar(40) default NULL,
  `
perfilint(10unsigned default NULL,
  
PRIMARY KEY  (`idusuario`)
TYPE=MyISAM;

INSERT INTO `usuarioVALUES ('91519095''Jorge Hernando''Duarte''piris''fb3c94c67583056ed0c993cb60e8548b'3);
INSERT INTO `usuarioVALUES ('91654123''estudiante''estudiante''estudiante''f84b437e1ce2643aa5572ad53dd7d4ce'3);
INSERT INTO `usuarioVALUES ('171717171''freddy''mantilla''freddy1''a0137aae1e07f922372b7b5ca71a4ff9'4); 
y quiero visualizar todos los estudiantes que se encuentran en la tabla estudiantegrupo pero menos los que esten en el grupo 1, sin importar si estan en otro grupo, lo hago con la siguiente consulta que usa subconsulta

Código PHP:
select e.idestudiante as id,u.idusuario as documento,u.nombre as nombre,u.apellido as apellido,e.correo as correo
 from usuario u join estudiante e on u
.idusuario e.usuario_idusuario
 left join estudiantegrupo k on e
.idestudiante k.estudiante_idestudiante
 where 
(k.grupo_idgrupo is null or k.grupo_idgrupo != '1') and e.idestudiante not in (select estudiante_idestudiante from estudiantegrupo where grupo_idgrupo '1')
 
group by e.idestudiante
 order by e
.idestudiante asc 
lo uso en un servidor con mysql 5.0 y funciona correctamente, el problema es que tengo que hacerlo funcionar en mysql 4.0 y no sirven subconsultas, no puedo optar por aztualizar al version pro que eso no esta en mis manos.... asi que no se como hacerlo...., ya que si quito la subconsulta me muestra todos los estudiantes que menos los que estan en el grupo 1, pero si hay uno de esos mismos que esta en el grupo 2 tamb lo muestra...
bueno muchas gracias de antemano alq ue pueda ayudarme