Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consulta y alias

Estas en el tema de consulta y alias en el foro de Mysql en Foros del Web. Hola a todos, Tengo un problema con esta consulta: Código PHP: SELECT prueba . componentes . * ,  prueba . procedimientos . * ,  prueba_gestion . clientes . * ,  prueba . ...
  #1 (permalink)  
Antiguo 26/07/2006, 04:02
Avatar de ibme74  
Fecha de Ingreso: marzo-2004
Mensajes: 81
Antigüedad: 20 años, 1 mes
Puntos: 0
consulta y alias

Hola a todos,

Tengo un problema con esta consulta:

Código PHP:
SELECT prueba.componentes. * , prueba.procedimientos. * , prueba_gestion.clientes. * , prueba.privilegios. * 
FROM prueba.componentesprueba.procedimientosprueba_gestion.clientesprueba.privilegios
 WHERE prueba
.componentes.tabla prueba.procedimientos.tabla 
AND prueba.componentes.campo prueba.procedimientos.campo 
AND prueba.componentes.procedimiento prueba.procedimientos.procedimiento 
AND prueba.componentes.procedimiento 'ver' 
AND prueba_gestion.clientes.idreg '10' AND prueba.privilegios.usuario 'admin' 
AND prueba.privilegios.tabla 'clientes' 
GROUP BY prueba.componentes.campo 
el problema es que hay varios campos con nombres repetidos.¿Hay alguna forma de poder consultar toda la tabla(*) y dar alias sólo a los campos con el mismo nombre o tengo que poner los nombres de todos los campos de las cuatro tablas en el SELECT obligatoriamente?


Gracias
  #2 (permalink)  
Antiguo 26/07/2006, 08:42
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Deberías sólo elegir los campos que quieres mostrar de cada tabla. Para crear alias de ellos simplemente haces: prueba.componentes.campo as campo_pc, por ejemplo.
Deberías dar alias a las tablas para facilitar la escritura de la consulta y hacerla mas corta, asi:

Código:
select pc.campo as campopc, pg.campo as campopg from prueba.componentes pc, prueba_gestion.clientes pg where ....
  #3 (permalink)  
Antiguo 26/07/2006, 09:18
Avatar de ibme74  
Fecha de Ingreso: marzo-2004
Mensajes: 81
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias por responder claudiovega.

Si no entiendo mal seria algo asi:

Código PHP:
SELECT pc.campo AS campopcpg.campo AS campopg
FROM prueba
.componentes pcprueba.procedimientos pg
WHERE pc
.campo pg.campo 
Una duda, si pgcampo solo lo necesito para hacer la comparación lo puedo omitir del select:

Código PHP:
SELECT pc.campo AS campopc
FROM prueba
.componentes pcprueba.procedimientos pg
WHERE pc
.campo pg.campo 
¿Esto seria correcto?

Saludos.
  #4 (permalink)  
Antiguo 26/07/2006, 11:30
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Cita:
Iniciado por ibme74

Una duda, si pgcampo solo lo necesito para hacer la comparación lo puedo omitir del select:

Código PHP:
SELECT pc.campo AS campopc
FROM prueba
.componentes pcprueba.procedimientos pg
WHERE pc
.campo pg.campo 
¿Esto seria correcto?

Saludos.
Asi es.
La regla es que si un campo quieres mostrarlo lo coloques en el select, el otro caso es si usas group by, todos los campos nombrados en la clausula group by deben estar en select.
  #5 (permalink)  
Antiguo 27/07/2006, 03:49
Avatar de ibme74  
Fecha de Ingreso: marzo-2004
Mensajes: 81
Antigüedad: 20 años, 1 mes
Puntos: 0
Muchas gracias por tu ayuda claudiovega, ya me quedo todo un poco mas claro.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:06.