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

ordenar por varios campos de tablas distintas

Estas en el tema de ordenar por varios campos de tablas distintas en el foro de Mysql en Foros del Web. Buenas!!!, quiero hacer una consulta que recoja los datos de dos tablas distintas ordenadas por su fecha. tabla 1 -id -fecha -condicion tabla 2 -id ...
  #1 (permalink)  
Antiguo 02/06/2011, 10:56
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 1 mes
Puntos: 2
ordenar por varios campos de tablas distintas

Buenas!!!, quiero hacer una consulta que recoja los datos de dos tablas distintas ordenadas por su fecha.

tabla 1
-id
-fecha
-condicion

tabla 2
-id
-fecha
-condicion

algo asi:
Código HTML:
SELECT * FROM tabla1,tabla2 WHERE condicion='1' ORDER BY tabla1.fecha,tabla2.fecha
pero que funcione, pues esto no me funciona ;)

gracias de antemano!!!!!
  #2 (permalink)  
Antiguo 02/06/2011, 11:06
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ordenar por varios campos de tablas distintas

bueno si funciona, pero no me mezcla los resultados y los saca dos veces

Última edición por molinillo; 02/06/2011 a las 11:13
  #3 (permalink)  
Antiguo 02/06/2011, 11:18
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ordenar por varios campos de tablas distintas

ups este se me ha escapado, he citado en vez de editar
  #4 (permalink)  
Antiguo 02/06/2011, 11:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ordenar por varios campos de tablas distintas

Es que no estás poniendo cuál es la condición de la relación entre las dos tablas. Te está generando un producto cartesiano.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 02/06/2011, 11:49
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ordenar por varios campos de tablas distintas

primero que nada, gracias por la respuesta.
Lamento no tener suficnetes conocimientos sobre mysql y la verdad no tengo claro como hacer lo que dices, mira voy a poner la real para ver si me puedes hechar una mano:
Has de saber tb, que las tablas tienen distintos campos, llamados de forma distinta por lo q no he usado UNION

Código HTML:
SELECT promoscantidad.id as ids,promociones.id as ids FROM promoscantidad,promociones  ORDER BY promoscantidad.fecha , promociones.fch_entrada

la idea es q dando igual q una sea de la tabla 1 o de la tabla 2 , me salgan ordenadas por su fecha.

como tu dices la respuesta no es mas que las ids de la primera tabla 4 veces seguidas
  #6 (permalink)  
Antiguo 02/06/2011, 11:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ordenar por varios campos de tablas distintas

La idea es básicamente simple: Si entre un registro de la tabla 1 y otro registro de la tabla 2 hay algún tipo de relación, como podría ser la de un producto con su fabricante, una de las dos tablas debe poseer entre sus columnas una que cuyo valor se corresponda con el ID del registro de la otra tabla con el cual tiene relación.
Eso es lo que se denomina "clave foránea": Un campo o conjunto de campos cuyo valor depende de la clave primaria de otra tabla, a la que hace referencia.
Esto normalmente se define en la creación de la tabla, de modo que no puedas insertar ningún registro en la tabla dependiente que no exista en la tabla referida (integridad referencial).
Cuando existe ese tipo de vinculaciones la consulta que tu deseas hacer es muy sencilla de escribir:

Código MySQL:
Ver original
  1. SELECT T1.id, T1.fecha,  T1.condicion, T1.id, T1.fecha,  T1.condicion
  2. FROM tabla1 INNER JOIN tabla2 ON T1.id_tabla2 = T2.id;
Para que la consulta funcione se requiere que Tabla1 tenga un campo FK de la tabla2, que en este ejemplo estoy llamando "id_tabla2".

¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 02/06/2011, 15:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ordenar por varios campos de tablas distintas

Muchas gracias de nuevo , mmm voy a probar pero creo que no es lo que decia por que me he explicado fatal.
Releyendo mis posts creo que no he sido del todo claro.

Mientras pruebo, dejo esto mejor explicado , creo que, como me he epxlicado mal, has entendido otra cosa, a ver si esta vez logro explicarme mejor.

Las tablas son de dos productos completamente distintos, con campos distintos.
Tengo que mostrar todos los productos de las dos tablas listados por fecha de ingreso, en una sección de mi página.
Da igual que uno sea un producto a y otro b, primero deberia salir el mas nuevo y luego lso siguientes mas nuevos independientemente de que tipo de producto sean.
Las tablas no tienen ninguna relación, son de productos completamente distintos. Lo único que tienen similar es la fecha de entrada, por eso que decidí ordenarlas por fecha.

Pero incluso el campo de fecha tienen nombre distinto en cada tabla, en una es fecha y en otra es fch_entrada

Lo que seguro te lió es que puse ese WHERE en el primer post, pero es por que algún prodcuto puede estar caducado y ese no debo mostrarlo, por eso en el segundo post ya no puse el WHERE , por que esa parte no me da problemas es una simple comprobación de si los productos están caducados o no.

Espero haberme esplicado mejor esta vez, voya probar lo que me has dicho y muchisimas gracias por interesarte por mi problema

Última edición por molinillo; 02/06/2011 a las 15:43
  #8 (permalink)  
Antiguo 03/06/2011, 02:19
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ordenar por varios campos de tablas distintas

No me ha funcionado, alguna otra sugerencia?, gracias de antemano!
  #9 (permalink)  
Antiguo 03/06/2011, 03:00
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ordenar por varios campos de tablas distintas

me voy acercando con esto

Código HTML:
$sqll = "(SELECT promoscantidad.id as ids FROM promoscantidad) 
	UNION (SELECT promociones.id as ids FROM promociones)
	ORDER BY 1";
solo que me los ordena por id y se come los repetidos, y la idea es listarlo por otro campo llamado fecha en promoscantidad y fch_entrada en promociones
  #10 (permalink)  
Antiguo 03/06/2011, 03:07
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ordenar por varios campos de tablas distintas

y este ya es casi casi casi casi casi casi lo que queiro, el unico problemita es q si las fechas llegan a coincidir(cosa dificl por q lleban segundos pero q puede llegar a pasar) uno de los dos no se muestra.

Así que mi duda quedaria así , como mejorar esta consulta:
Código HTML:
$sqll = "(SELECT turi_promoscantidad.id as ids, turi_promoscantidad.fecha as fch FROM turi_promoscantidad) 
UNION (SELECT turi_promociones.id as ids,turi_promociones.fch_entrada  as fch FROM turi_promociones)
ORDER BY 2";
para que cuando las fechas conicidan me muestre ambas no solo una de ellas.

Etiquetas: campos, distintas, tablas
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 10:20.