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

Consulta

Estas en el tema de Consulta en el foro de Mysql en Foros del Web. Tabla A Datetime | Huelva |Orense |Madrid 30/01/2012 0:00 | 36 | 34 | 5 30/01/2012 0:10 | 57 | 7 | 56 31/01/2012 0:00 ...
  #1 (permalink)  
Antiguo 28/03/2012, 08:26
 
Fecha de Ingreso: marzo-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Consulta

Tabla A

Datetime | Huelva |Orense |Madrid
30/01/2012 0:00 | 36 | 34 | 5
30/01/2012 0:10 | 57 | 7 | 56
31/01/2012 0:00 | 22 | 35 | 5
31/01/2012 0:10 | 17 | 6 | 56


Tabla B

Provincia | Comunidad
Huelva | Andalucia
Orense | Galicia
Jaen | Andalucia
Madrid | Madrid


Tabla C

Datetime |Provincia |Comunidad |Ventas
30/01/2012 0:00 |Huelva |Andalucia |36
30/01/2012 0:10 |Huelva |Andalucia |57
31/01/2012 0:00 |Huelva |Andalucia |22
31/01/2012 0:10 |Huelva |Andalucia |17
30/01/2012 0:00 |Orense |Galicia |34
30/01/2012 0:10 |Orense |Galicia |7
31/01/2012 0:00 |Orense |Galicia |35
31/01/2012 0:10 |Orense |Galicia |6

etc...

Hola a todos,

Estoy un poco verde en esto de las consultas, etc... y queria exponeros mi objetivo:

Partiendo de la Tabla A y la Tabla B, quiero generar una tercera TAbla C, tal y como os detallo en los ejemplos.

Es dificil hacer esto?

Un saludo a todos y gracias de antemano,
Julumergon.
  #2 (permalink)  
Antiguo 28/03/2012, 08:49
 
Fecha de Ingreso: febrero-2010
Mensajes: 157
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: Consulta

necesitas identificar en algo la tabla a con la b ya que no identificas en nada, deverias modificar y quedar asi

Datetime | ventas|ciudad
30/01/2012 0:00 | 36 | 1
30/01/2012 0:10 | 57 | 2
31/01/2012 0:00 | 22 | 3

y luego otra
id|Provincia | Comunidad
1| Huelva | Andalucia
2| Orense | Galicia
3| Jaen | Andalucia


ahora si se podria plantear lo que dices..
  #3 (permalink)  
Antiguo 28/03/2012, 09:51
Avatar de User_Kathy  
Fecha de Ingreso: septiembre-2010
Mensajes: 38
Antigüedad: 13 años, 7 meses
Puntos: 8
Respuesta: Consulta

Cita:
Iniciado por yeyowave Ver Mensaje
necesitas identificar en algo la tabla a con la b ya que no identificas en nada, deverias modificar y quedar asi

Datetime | ventas|ciudad
30/01/2012 0:00 | 36 | 1
30/01/2012 0:10 | 57 | 2
31/01/2012 0:00 | 22 | 3

y luego otra
id|Provincia | Comunidad
1| Huelva | Andalucia
2| Orense | Galicia
3| Jaen | Andalucia


ahora si se podria plantear lo que dices..
la consulta seria mas o menos asi despues de colocarle los cambios que dice yeyowave que son necesarios

Select a.Datetime b.Provincia b.Comunidad a.Ventas From a, b where a.ciudad=b.id;

y eso te traera como resultado la tabla C que quieres pero primero modifica tus tablas
  #4 (permalink)  
Antiguo 28/03/2012, 09:53
Avatar de User_Kathy  
Fecha de Ingreso: septiembre-2010
Mensajes: 38
Antigüedad: 13 años, 7 meses
Puntos: 8
Respuesta: Consulta

corrijo

Select a.Datetime, b.Provincia, b.Comunidad, a.Ventas From a, b where a.ciudad=b.id;
  #5 (permalink)  
Antiguo 28/03/2012, 10:17
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta

Una observación adicional a la consulta que propone User_Kathy; es recomendable utilizar JOIN'S (INNER, LEFT O RIGTH según sea el caso) en lugar de hacer las uniones explícitas en FROM-WHERE:

En lugar de poner esto

Código:
FROM TablaA, TablaB WHERE TablaA.campo = TablaB.campo
Haz esto:

Código:
FROM TablaA INNER JOIN TablaB ON TablaA.campo = TablaB.campo
Aunque el resultado es exactamente el mismo el performance de la consulta es mejor con los JOIN's.

Si tienes dudas de cómo se manejan los distintos tipos de JOIN's, pregunta a Santa Wikipedia:

http://es.wikipedia.org/wiki/Join

Saludos
Leo.
  #6 (permalink)  
Antiguo 29/03/2012, 00:31
 
Fecha de Ingreso: marzo-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Respuesta: Consulta

Muchisismas gracias a todos,

Ahora lo veo todo clarisimo, espero aprender un monton de todos vosotros.
Gracias por compartir vuestro conocimiento,

Un saludo,
Juan Luis.

Corrigo: No lo veo tan claro

A ver si me explico,

La tabla B si que la entiendo, pues lo que haces es asignar un ID a cada una de las diferentes provincias, quedando:

ID|Provincia | Comunidad
-----------------------------------
1 | Huelva | Andalucia
2 | Orense | Galicia
3 | Jaen | Andalucia

ademas es facil de añadir esta columna ID.

Pero la tabla A que me propones es:

Datetime | ventas|ciudad
-------------------------------------------
30/01/2012 0:00 | 36 | 1
30/01/2012 0:10 | 57 | 2
31/01/2012 0:00 | 22 | 3

entiendo que como son ventas de la misma ciudad deberia de ser 1,1,1 en vez de 1,2,3.

Es correcto?

Y como hago para modificar la tabla y meterle el nuevo identificador "ciudad" a un monton de filas con diferente datetime, en todas la ciudades.

Un saludo,
Juan Luis.

Última edición por julumergon; 29/03/2012 a las 01:01 Razón: Rectifico

Etiquetas: select
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 02:54.