Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-02-2016
GUN10 GUN10 is offline
Miembro
 
Registrado: feb 2010
Posts: 37
Poder: 0
GUN10 Va por buen camino
Consulta sencilla entre 3 tablas

Hola buenas tardes!

Quisiera saber si me pueden ayudar con la siguiente consulta.
Tengo las siguientes tablas con los siguientes campos

usuarios (dni_usuario, nombre, apellido, direccion)
perfiles (cod_perfil, administrador, operador, tecnico)
perfiles_usuarios (dni_usuario, cod_perfil)


tengo en un combobox cargado todos los registros de la tabla perfiles y lo que quiero hacer es que cuando seleccione un perfil, me muestre todos los usuarios que tiene ese perfil. por ejemplo todos los administradores.

estoy dudando si es que la relacion de las tablas o el planteo esta bien hecho, aunque leyendo y buscando creo que es asi como deberia ser definida.

lo que no logro definir es la consulta en sql para lograr recuperar esos registros
Responder Con Cita
  #2  
Antiguo 25-02-2016
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
ke tal amigo, mas que un combobox yo te recomendaria usar un dblookupcombobox. con este es mas facil recuperar el id de la tabla que le asignes.

una vez teniendo este control definido en su evento on click armas la consulta


algo mas o menos asi

Código Delphi [-]
algunavariable:= dblookupcombobox1.keyvalue;
filtro:= 'select * from usuario, rol, usuario_rol where usuario_rol.id_usuario = usuario.id_usuario and usuario_rol.id_rol = rol.id_rol  and usuario.id_usuario ='+ inttostr(algunavariable);

data.Close;
  data.SQL.clear;
  data.SQL.Text:= filtro;
  data.ExecSQL;

espero te sirva...
__________________
un tipo al cual la sociedad no le tiene el mas mínimo respeto no puede ser presidente....
Responder Con Cita
  #3  
Antiguo 26-02-2016
GUN10 GUN10 is offline
Miembro
 
Registrado: feb 2010
Posts: 37
Poder: 0
GUN10 Va por buen camino
Muchas gracias por la respuesta kapcomx !

Efectivamente si estaba usando un DBLookUpComboBox. Utilice el codigo que pongo a continuacion, como el que vos me pasaste y funciona (porque lo probe en phpmyadmin) pero el problema es que no me esta mostrando en el DBGrid. Que me estaria faltando?
El DBGrid por defecto esta asociado a otra, que es la tabla usuarios, por eso agrego esta linea

Código Delphi [-]
DBGusuarios.DataSource:= Datos.DSconsultasusuarios;

Código Delphi [-]
      Datos.Qconsultasusuarios.Close;
      Datos.Qconsultasusuarios.SQL.Clear;
      Datos.Qconsultasusuarios.SQL.Add('select usuarios.nombre, usuarios.apellido, perfiles.nombre from usuarios, perfiles,        perfiles_usuarios where perfiles_usuarios.dni_usuario=usuarios.dni_usuario and perfiles_usuarios.cod_perfil=perfiles.cod_perfil and    perfiles.cod_perfil='+QuotedStr('*'+CBperfiles.GetKeyValue+'*'));
      Datos.Qconsultasusuarios.Open;
      DBGusuarios.DataSource:= Datos.DSconsultasusuarios;

Muchas gracias por tu ayuda!!
Responder Con Cita
  #4  
Antiguo 26-02-2016
GUN10 GUN10 is offline
Miembro
 
Registrado: feb 2010
Posts: 37
Poder: 0
GUN10 Va por buen camino
Problema solucionado !!

Mi error estaba en la sintaxis del codigo SQL.
El codigo correcto para la consutla es el siguiente!

Código SQL [-]
Datos.Qconsultasusuarios.SQL.Add('select usuarios.nombre, usuarios.apellido, perfiles.nombre 
from usuarios, perfiles, perfiles_usuarios 
where perfiles_usuarios.dni_usuario=usuarios.dni_usuario 
         and perfiles_usuarios.cod_perfil=perfiles.cod_perfil 
         and perfiles.cod_perfil='+CBperfiles.GetKeyValue+'');

Muchas gracias nuevamente por tu ayuda kapcomx!!
Responder Con Cita
  #5  
Antiguo 26-02-2016
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
x nada amigo GUN10, da gusto saber que puedo ayudar a alguien asi como ami me han ayudado bastante en este grupo.

Saludos...
__________________
un tipo al cual la sociedad no le tiene el mas mínimo respeto no puede ser presidente....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta entre 2 tablas de diferentes bd de sql server comba MS SQL Server 4 24-05-2016 00:49:52
Generar consulta entre dos tablas relacionadas cmfab MySQL 6 26-12-2011 21:56:08
Consulta entre dos tablas! jjha79 SQL 5 18-11-2009 17:38:08
Consulta entre tablas de distintas BD kchilo SQL 5 05-09-2007 21:37:13
Ayuda con consulta de combinación entre tablas. Roilo SQL 7 13-04-2007 21:35:59


La franja horaria es GMT +2. Ahora son las 09:02:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi