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

Query compleja SQL

Estas en el tema de Query compleja SQL en el foro de Mysql en Foros del Web. Hola foreros, Me pongo en contacto con vosotros, para pediros ayuda con una query que necesito hacer y no sé cómo hacerla. He probado varias ...
  #1 (permalink)  
Antiguo 18/10/2013, 14:02
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Query compleja SQL

Hola foreros,

Me pongo en contacto con vosotros, para pediros ayuda con una query que necesito hacer y no sé cómo hacerla. He probado varias soluciones pero ninguna me ha funcionado del todo.

Verán tengo dos tablas, una que tiene unos códigos que corresponden a unas descripciones que hay en la otra. Lo que me gustaría hacer es con una query a la tabla donde están los códigos y que además hay más campos que quiero mostrar, que salgan las descripciones resultas en vez de los códigos.

Pero no sé cómo unir estas dos tablas.

Adjunto fotos para mayor claridad del problema:

En las tabla MAQHF hay 6 campos(MAQA01,02,03...) que corresponden al campo MAJCUE de la tabla MAEJF y luego los códigos de las descripciones en los demás campos. MAQN01,02,03...

https://www.dropbox.com/s/t852zgoem8...ESCRIPCION.jpg
https://www.dropbox.com/s/t852zgoem8...ESCRIPCION.jpg


Muchas gracias por vuestro tiempo.
Un saludo.
  #2 (permalink)  
Antiguo 18/10/2013, 22:19
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Query compleja SQL

Cita:
Iniciado por darkram Ver Mensaje
Hola foreros,

Me pongo en contacto con vosotros, para pediros ayuda con una query que necesito hacer y no sé cómo hacerla. He probado varias soluciones pero ninguna me ha funcionado del todo.

Verán tengo dos tablas, una que tiene unos códigos que corresponden a unas descripciones que hay en la otra. Lo que me gustaría hacer es con una query a la tabla donde están los códigos y que además hay más campos que quiero mostrar, que salgan las descripciones resultas en vez de los códigos.

Pero no sé cómo unir estas dos tablas.

Adjunto fotos para mayor claridad del problema:

En las tabla MAQHF hay 6 campos(MAQA01,02,03...) que corresponden al campo MAJCUE de la tabla MAEJF y luego los códigos de las descripciones en los demás campos. MAQN01,02,03...

https://www.dropbox.com/s/t852zgoem8...ESCRIPCION.jpg
https://www.dropbox.com/s/t852zgoem8...ESCRIPCION.jpg


Muchas gracias por vuestro tiempo.
Un saludo.
No entendí tu problema :S
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 19/10/2013, 04:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Query compleja SQL

creo que lo que quieres es unir mediante INNER JOIN las tablas y seleccionar datos de ambas. Te pondré un ejemplo sencillo y tú lo adaptas a tus datos
Imaginemos que la tabla 1 llamada codigos cuenta con el campo id_codigo, que es Primary Key y con otros datos en otros campos, y la tabla 2 llamada ventas se relaciona con ella por el campo id_codigo, que también lo encontramos en ella además de otros campos propios.
Código MySQL:
Ver original
  1. SELECT v.detalleventa, v.precioventa, c.id_codigo, c.codigo
  2.  FROM ventas v
  3.  INNER JOIN codigos c ON v.id_codigo = c.id_codigo
Como ves, están unidos por el campo id_codigo que aparece en ambas tablas, en ventas es Foreign Key, y en codigos es Primary Key. Estudia un poco sobre esos conceptos. Se unen en este caso con INNER JOIN, en el que solo te traerá las coincidencias en ambas tablas por ese campo, es decir, todos los id_codigo de ventas serán seleccionados con las coindicencias en ese campo de codigos. El primary key está indexado por naturaleza los Foreign Key deben ser indexados. Este ese el fundamento de las bases de datos relacionales, pero hay mucho más.
Naturalmente, también puedes traerte mediente filtrado con where por algún valor específico. Observarás que he usado alias para los nombres de las tablas, c para codigos y v para ventas. Puedes usar o el nombre de la tabla o los alias. Si los creas en una consulta, tendrás que llamar a esa tabla en la consulta siempre por el alias.
Quizás deberías echar un vistazo a tutoriales sobre bases de datos relacionales y las consultas SQL. Por supuesto, en el manual de MySQL encontrarás mucha información.
  #4 (permalink)  
Antiguo 22/10/2013, 14:42
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Query compleja SQL

Hola guardarmicorreo y jurena!

Gracias por la respuesta y el interés.

Deciros que alfinal lo he solucionado como dices jurena, aunque como necesitaba 5 descripciones de la tabla. HE tenido que llamar a la tabla de descripciones 5 veces filtrando por el codigo adecuado en cada vez.

Lo dicho gracias!

Etiquetas: campo, compleja, query, sql, tabla
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 19:58.