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

Ayuda para mortrar una ocnsulta

Estas en el tema de Ayuda para mortrar una ocnsulta en el foro de Mysql en Foros del Web. hola como estan... tengo la siguiente duda o pregunta... por ejemplo de una BD donde se tengan tablas como clientes, vendedores, compras, etc; digamos que ...
  #1 (permalink)  
Antiguo 13/01/2007, 18:29
Avatar de paopao  
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 20 años, 5 meses
Puntos: 0
Ayuda para mortrar una ocnsulta

hola como estan...

tengo la siguiente duda o pregunta...

por ejemplo de una BD donde se tengan tablas como clientes, vendedores, compras, etc; digamos que se desea hacer una consulta simple de los nombres, apellidos, telefono, etc de los clientes, y mostrarlos en una tabla... la pregunta en si luego de toda esa carreta es como hago para mostrar en la tabla resultante de la siguiente manera:

---Cliente--- ---Telefono---
|nombre1 apellido 1 | 5646445 |
|nombre2 apellido 2 | 1231484 |

o sea no mostrar por separado el nombre y apellido, sabiendo de antemano que en la tabla de la BD estan por separado, como los uno para que salga cada nombre y apellido en una celda y no en dos....

Espero me haya hecho entender, gracias.
__________________
:si: El Mundo Merece Mejoras Instantaneas :si:
  #2 (permalink)  
Antiguo 13/01/2007, 18:38
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 10 meses
Puntos: 9
Re: Ayuda para mortrar una ocnsulta

"SELECT CONCAT(nombre,apellido) as Nombre_completo, telefono FROM clientes"
  #3 (permalink)  
Antiguo 13/01/2007, 23:33
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Re: Ayuda para mortrar una ocnsulta

Código PHP:
SELECT CONCAT(nombre" "apellido) as Clientetelefono
FROM cliente 
Faltó el espacio entre nombre y apellido.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 15/01/2007, 07:44
Avatar de paopao  
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Ayuda para mortrar una ocnsulta

aaaaahhh ya hey muchas gracias a los dos... .
__________________
:si: El Mundo Merece Mejoras Instantaneas :si:
  #5 (permalink)  
Antiguo 15/01/2007, 08:30
Avatar de paopao  
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Ayuda para mortrar una ocnsulta

Hola como estan.. me sirvió su ayuda y ya puedo mostrar en una misma columna los dos atributos que deseo.... pero me surge un problema ahora..

miren en lo que estoy haciendo es programando el select de la busqueda de una aplicacion que estoy haciendo para mi proyecto de grado.... entonces a partir de unos criterios que digiten asi se armará la búsqueda, el caso que coloqué aqui es cuando me digitan la busqueda por el autor... entonces me pasa lo siguiente no se como hacer que ese autro se busque en la columna de nombres y apellidos...o sea lo que logro es poder buscar o por nombre o por apellido, pero si me digitan el nombre y apellido al tiempo no da resultado.. Que puedo hacer?...

select t.codigotg as Codigo_TG, t.titulo as Titulo, CONCAT(est.nombres, ' ', est.apellidos )as Autor from tg t, estudiante est where t.codigotg = est.codigotg and (est.nombres LIKE('%maria claudia lopez%') or est.apellidos LIKE('%maria claudia lopez%') )

en el select, maria claudia lopez fue lo que me digitaron en el formulario para buscar y no me da resultado pues porque en nombres no está el Lopez sino obviamente maria claudia, y en apellidos solo lopez...

Gracias espero me ayuden...
__________________
:si: El Mundo Merece Mejoras Instantaneas :si:
  #6 (permalink)  
Antiguo 15/01/2007, 09:19
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Ayuda para mortrar una ocnsulta

Creo que tu problema es más de PHP que de SQL ya que tu consuta debe ser aslgo como lo que tienes

Código:
select t.codigotg as Codigo_TG, t.titulo as Titulo, CONCAT(est.nombres, ' ', est.apellidos )as Autor from tg t, estudiante est where t.codigotg = est.codigotg and (est.nombres LIKE('%nombre%') or est.apellidos LIKE('%apellido1 apellido2%') )
Pero los valores de LIKE deben ser lo que te pasen en el campo de formulario NOMBRE y en apellido lo mismo, y si sólo tines un campo de búsqueda supongo que tendrás que armar algo como esto

Código:
select t.codigotg as Codigo_TG, t.titulo as Titulo, CONCAT(est.nombres, ' ', est.apellidos )as Autor from tg t, estudiante est where t.codigotg = est.codigotg and (CONCAT(est.nombres,est.apellidos) LIKE('%maria claudia lopez%')
Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #7 (permalink)  
Antiguo 15/01/2007, 10:16
Avatar de paopao  
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola, mira com coloqué el el Select me funciona, pero como la condicion del LIKE no está correcta y no se ocmo hacerla no me da resultado para el caso del nombre completo y apellidos..

y pue probé como me dices pero no me funcionai... EL CONCAT se utiliza en la clausula WHERE ?

Gracias!.


Hola Lord of freaks, que pena contigo me retracto de lo dicho ya lo hice bien y si me funcinó tenia error con los parentesis

Mira me quedó asi
select t.codigotg as Codigo_TG, t.titulo as Titulo, CONCAT(est.nombres, ' ', est.apellidos )as Autor from tg t, estudiante est where t.codigotg = est.codigotg and (CONCAT(est.nombres,' ',est.apellidos) LIKE('%maria claudia lopez%'))


Muchas Gracias!!
__________________
:si: El Mundo Merece Mejoras Instantaneas :si:

Última edición por BrujoNic; 16/01/2007 a las 10:19
  #8 (permalink)  
Antiguo 15/01/2007, 16:25
Avatar de paopao  
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Ayuda para mortrar una ocnsulta

hola... uuyy se me habia olvidado preguntar otra cosa... a parte de esa y que va con ella... la cuestion es que si yo quiero colocar en una misma celda los nombre de dos o tres personas porque tienen el TrabajoGrado en común, como lo hago... alguna clausula que permita la union esta...

es que el resultado del select me los da obviamente por aparte y pues se duplica la informacion...

gracias y pues disculpen tanta preguntadera.. pero estamos para ayudarnos gracias...

P.D. todos los días se aprenden cosas nuevas y hoy ha sido uno mas, gracias.
__________________
:si: El Mundo Merece Mejoras Instantaneas :si:
  #9 (permalink)  
Antiguo 16/01/2007, 04:51
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Ayuda para mortrar una ocnsulta

Puedes hacer un update del tipo

Código:
UPDATE tabla SET campo=CONCAT(campo,','.'valor nuevo)
Pero vamos para mi la mejor solución es crear una tabla nueva en la que referencies la id de la persona y la id del trabajo. Vamos tener 3 tablas una trabajos donde listas los trabajos, otra personas donde listas las personas y una trabajoComun donde unes la id de persona con la id de trabajo.

Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #10 (permalink)  
Antiguo 16/01/2007, 08:19
Avatar de paopao  
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Ayuda para mortrar una ocnsulta

Hola!.
Entiendo lo que me dices y si yo tengo una tabla llamada TG, y tengo una que se llama Estudiantes donde uno de los atributos referencia al TG al que pertenece.
Pero me dices que cree una tercera donde relacione los dos ID's, bueno la cree y en ella tengo los dos id's de tg y estudiante pero nada no se como es se me hizo un arroz con mango ahí... No se como sacar ese resultado que quiero
__________________
:si: El Mundo Merece Mejoras Instantaneas :si:

Última edición por BrujoNic; 16/01/2007 a las 10:19
  #11 (permalink)  
Antiguo 16/01/2007, 09:03
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Ayuda para mortrar una ocnsulta

Mira la estructura que yo propongo es la siguiente:

3 tablas (a desarollar pongo lo mínimo)

ESTUDIANTES

id
nombre
apellidos

TRABAJOS

id
nombre

TG

id
id_trabajo
id_estudiante

De esta forma cada vez qeu un estudiante entre en un trabajo deberás insertar una fila en TG indicando el id del estudiante y el id del TG.

Con esta estructura podrás saber todo lo relativo a cada trabajo ya que sólo tines que filtrar por id_trabajo, desde cuantos estudiantes hay como quires son, etc.

Por ejemplo.


Datos de cada Trabajo
Código:
SELECT 

TRABAJOS.nombre,
count(*) as numeroEstudiantes

FROM 
TRABAJOS,TG 

WHERE 

TG.id_trabajo = TRABAJO.id 

GROUP BY TG.id_trabajo
Estudiantes del TRABAJO número 9
Código:
SELECT 

ESTUDIANTES.nombre,
ESTUDIANTES.apellidos


FROM 
ESTUDIANTES,TG 

WHERE 

TG.id_trabajo = 9
Espero que sea lo que buscabas

Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #12 (permalink)  
Antiguo 16/01/2007, 09:35
Avatar de paopao  
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Ayuda para mortrar una ocnsulta

Hola, de antemano gracias por atenderme...

Mira pues con la estructura te tablas que tengo tambien puedo sacar eso que me dices yo tengo lo siguiente:

Estudiantes
-idest
-idtg
-nombres
-apellidos
-semestre

TG
-idtg
-titulo
-fecha
-lineaInvest
-etapa
-programa


Con eso puedo saber que estudiantes pertenecen a x trabajo, y tambien puedo listar los datos de un trabajo de algún estudiante en especifico.

Te hago una pregunta teniendo esta estructuras de tablas que tengo yo y tu las que presentas que diferencias en cuanto a resultados hay, pues yo a vista corta no las veo, ahora bien tu tienes mas experiencia que yo en esto pues como lo ves?.

Y pues en si vuelvo y te digo que era lo que quería mostrar inicialmente, y es que pueda en el resultado de mi busqueda mostrar algo como:

Titulo | Autores |
xxxxxx | Nom+Ape1, |
| Nom+Ape2 |
---------------------
yyyyy | Nom+Ape1 |
---------------------
zzzzzzz| Nom+Ape1, |
Nom+Ape2, |
Nom+Ape3. |
----------------------

Eso es lo que quiero mostrar en el resultado de la consulta que me hagan, pero no se como unir los autores para que salgan en una sola celda.
Al principio vos me dijiste como podía unir los nombre y apellidos de un autor para que aparecieran en una celda, pero ahora es algo mas que eso, porque a un TG pueden pertenecer 1 o 3 estudiantes y cuando realicen la busqueda debe aparecer listado los Tg con los autores que pertenecen a el.

gracias.. saludos
__________________
:si: El Mundo Merece Mejoras Instantaneas :si:

Última edición por BrujoNic; 16/01/2007 a las 10:20
  #13 (permalink)  
Antiguo 16/01/2007, 10:26
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 20 años, 1 mes
Puntos: 2
Re: Ayuda para mortrar una ocnsulta

Si sabes positivamente que el resultado de consulta va a ser un solo TG, entonces sólo tendrías que hacer una consutla del tipo:

Código:
SELECT 
CONCAT(nombre,' ',apellidos) 
FROM 
estudiantes 
WHERE 
idtg='el que toque'
Si te pueden consutlar por más de un TG a la vez, tal y como lo expones (yo no doy para más lo mismo hay una solución sql pero creo que no), necesitas pasar por programación y hacer 2 consultas.

Yo lo haría con una primera consulta del tipo

Código:
SELECT idtg,titulo FROM TG WHERE idtg IN('idtg1','idtg2,'las que sean')
y luego desplegando los resultados con un bucle con la misma consulta que si sólo te pasan un TG.

Código:
SELECT 
CONCAT(nombre,' ',apellidos) 
FROM 
estudiantes 
WHERE 
idtg='el que toque'
Espero que te sirva de ayuda, ya parar la programación mejor pergunta en el foro correspondiente PHP,ASP,JSP o lo que toque.

Un saludo

EDITADO: Una buena opción si usar PHP sería durante el buche ir guardando cada resultado en un array y al final de cada vuelta pintarlos usando la función IMPLODE sobre el array, pero no digo más sobre programacion que luego me regañan ;)
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #14 (permalink)  
Antiguo 16/01/2007, 12:05
Avatar de paopao  
Fecha de Ingreso: junio-2004
Mensajes: 72
Antigüedad: 20 años, 5 meses
Puntos: 0
Busqueda Re: Ayuda para mortrar una ocnsulta

[QUOTE=Lord of freaks;1855632]Si sabes positivamente que el resultado de consulta va a ser un solo TG, entonces sólo tendrías que hacer una consutla del tipo:

Código:
SELECT 
idtg, CONCAT(nombre,' ',apellidos) 
FROM 
estudiantes 
WHERE 
idtg='el que toque'
ok SI yo quiero eso, y la consulta puede arrojar solo una trabajo de grado aja , pero en ese trabajo pueden haber varios estudiantes y por ende el resultado de la consulta será tantas filas como estudiantes tenga el trabajo.
pero yo no quiero mostrar cada autor en una fila distinta, sino que salga el tg y los autores que pertenecen a el, eso en una sola fila. cada trabajo con sus autores.



P.D. No se si la respuesta a esto sea con SQL o PHP, pero como estoy haciendo las preguntas aqui porque estoy haciendo una consulta sql, mas no se si la solucion sea con ello, pues pero creo que sip, o bueno parte de ella lo fue...
P.D.D. Espero no nos regañen
__________________
:si: El Mundo Merece Mejoras Instantaneas :si:
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 14:02.