Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2009, 10:26
Petan
 
Fecha de Ingreso: julio-2009
Mensajes: 34
Antigüedad: 14 años, 9 meses
Puntos: 0
Ayuda con consulta relacionadas

Hola amigos, por favor me gustaria que me dieran una mano.

Estoy realizando un pequeno proyecto y estoy trabajando con la parte de
usuarios,grupos.

Tengo tres tablas

- User
- Group
- Relacion (User,Group,Company);


-- Tabla User --
Código:
Codigo | Nombre  | Company
-------------------------------------
1	 Miguel      1
2        Juan        1
3        Pedro       2 


CREATE TABLE  `ejemplo`.`user` (
  `Codigo` int(11) NOT NULL auto_increment,
  `Nombre` varchar(45) NOT NULL default '',
  `Company` int(11) NOT NULL default '0',
  PRIMARY KEY  (`Codigo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


--- Tabla Group ---
Código:
Codigo | Nombre
---------------------------
1        Prueba_1
2        Prueba_2



CREATE TABLE  `ejemplo`.`group` (
  `Codigo` int(11) NOT NULL auto_increment,
  `Nombre` varchar(45) NOT NULL default '',
  PRIMARY KEY  (`Codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--- Tabla Relacion ---

Código:
User | Group | Company
--------------------------------
1       1        1
2       1        1



CREATE TABLE  `ejemplo`.`relacion` (
  `Codigo` int(11) NOT NULL auto_increment,
  `User` int(11) NOT NULL default '0',
  `Group` int(11) NOT NULL default '0',
  `Company` int(11) NOT NULL default '0',
  PRIMARY KEY  (`Codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

En el ejemplo de -- Tabla relacion-- Miguel y Juan estan en el grupo Prueba_1



Me gustaria saber como hacer el query de la base de datos , para saber los usuarios que prueba_1 contiene y cuales usuarios no estan presente en ese grupo.

Actualmente tengo este codigo


-- Este codigo supuestamente mostraria los usuarios que estan fuera del grupo Prueba_1 , el caso es que no funciona --

Código SQL:
Ver original
  1. SELECT * FROM tb_user LEFT JOIN relacion ON USER.codigo = relacion.USER LEFT JOIN GROUP ON GROUP.codigo = 1
  2. WHERE USER.company = 1 AND relacion.GROUP IS NULL



-- Este codigo supuestamente mostraria los usuarios que estan dentro del grupo Prueba_1 , el caso es que no funciona tampoco--

Código SQL:
Ver original
  1. SELECT * FROM tb_user LEFT JOIN relacion ON USER.codigo = relacion.USER LEFT JOIN GROUP ON GROUP.codigo = 1
  2. WHERE USER.company = 1 AND relacion.GROUP IS NULL

De ante mano muchas gracias.