Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/12/2004, 11:30
Avatar de ArrauKano
ArrauKano
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 22 años
Puntos: 4
[MYSQL] Hacer consulta relacionando datos de 2 tablas

hola, tengo 2 tablas

site_modules:
ID ||TITLE || FILE || DESCRIPTION

y en la otra almaceno permisos para varios "targets" que pueden ser modulos, bloques, o alguna opcion

site_permissions
TARGET_TYPE || TARGET || ENTITY_TYPE || ENTITY_ID || PERMISSION

con esta consulta a site_permissions obtengo una lista de los permisos que tiene el usuario para saber q modulos puede ver

Código:
SELECT target FROM site_permission WHERE target_type="mod_view" AND entity_type="l" AND entity_id="-1"
esta consulta me retorna:
+--------+
| target |
+--------+
| 0 |
| 1 |
| 2 |
+--------+

ahora me gustaría mezclar los datos de esa consulta para que en vez de retornarme los numero, me retorne los title de la primera tabla para que quedara algo asi

+------------------+
| target |
+------------------+
| titulo xx del mod 1 |
| titulo yy del mod 1 |
| titulo zz del mod 1 |
+------------------+

¿como puedo hacer esto con una consulta SQL y no con programacion?


+ detalles, aki un dump para que funcione mi ejemplo

Código:
CREATE TABLE `site_modules` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(100) NOT NULL default '',
  `file` varchar(100) NOT NULL default '',
  `template` varchar(100) NOT NULL default '',
  `position` varchar(100) NOT NULL default '',
  `description` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

-- 
-- Volcar la base de datos para la tabla `site_modules`
-- 

INSERT INTO `site_modules` VALUES (0, 'Principal', 'mod_home.php', '', '', '');
INSERT INTO `site_modules` VALUES (1, 'Noticias', 'mod_news.php', '', '', '');
INSERT INTO `site_modules` VALUES (2, 'Autores', '', '', '', '');

-- --------------------------------------------------------

-- 
-- Estructura de tabla para la tabla `site_permission`
-- 

CREATE TABLE `site_permission` (
  `target_type` varchar(100) NOT NULL default '',
  `target` varchar(100) NOT NULL default '',
  `entity_type` char(1) NOT NULL default '',
  `entity_id` varchar(100) NOT NULL default '',
  `permission` varchar(100) NOT NULL default '',
  `description` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`target`,`entity_type`,`entity_id`,`permission`,`target_type`)
) TYPE=MyISAM;

-- 
-- Volcar la base de datos para la tabla `site_permission`
-- 

INSERT INTO `site_permission` VALUES ('mod_view', '1', 'l', '0', '1', '');
INSERT INTO `site_permission` VALUES ('mod_view', '2', 'l', '0', '1', '');
INSERT INTO `site_permission` VALUES ('mod_view', '1', 'l', '-1', '1', '');
INSERT INTO `site_permission` VALUES ('mod_view', '0', 'l', '-1', '1', '');