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

Novatillo: consulta en dos tablas distintas

Estas en el tema de Novatillo: consulta en dos tablas distintas en el foro de Mysql en Foros del Web. Buenas amigos, soy novatillo utilizando MYSQL y la verdad es que no sé con que comando se pueden consultar 2 tablas como si fueran una ...
  #1 (permalink)  
Antiguo 06/05/2010, 00:55
 
Fecha de Ingreso: septiembre-2009
Mensajes: 87
Antigüedad: 15 años, 2 meses
Puntos: 1
Novatillo: consulta en dos tablas distintas

Buenas amigos, soy novatillo utilizando MYSQL y la verdad es que no sé con que comando se pueden consultar 2 tablas como si fueran una misma. El tema es que los scripts que ingresan la info son de muy dificil modificación, por lo que desgraciadamente no puedo unir ambas tablas en una directamente.

En sintesis: tengo dos tablas, lo unico que comparten en comun es el campo TicketId.

En tabla 1 tengo

Ticket Id (numerico)
Id del autor (texto)
Nombre del autor del ticket (numerico)
Estado del ticket (abierto, cerrado)

En tabla 2 tengo

Ticket Id (numerico)
Producto (perro, gato, auto)

Como puedo hacer una consulta MYSQL, para obtener, por ejemplo, el numero total de registros que el autor del ticket (tabla1) tiene del producto perro (tabla2) en estado cerrado (tabla1).

He probado mas o menos con lo que sigue; pero desde luego no está bien la sintaxis. Me echais una mano? GRACIAS MIL

Código:
SELECT estadodelticket FROM tabla1 WHERE estadodelticket= 'cerrado' AND Iddelautor= '$user' AND FROM tabla2.TicketId = 'tabla1.ticketId' AND tabla2.producto = 'perro' ";
Para que puedan darse una idea de lo que necesito es unir las dos tablas que se ven a continuación

Para hacerlo aun mas claro: necesito que el señor MYSQL vaya a la tabla 1 y seleccione en ella todos los tickets de un determinado autor que se encuentran en estado cerrado (y que no me cuente todavia los registros)... y luego entre a la tabla 2 y basandose en el mismo TicketId que tienen ambas tablas, busque todos los registros que siendo de ese determinado autor y se encuentran cerrados, cumplen con la condicion de que en el campo producto se encuentre ingresado el valor "perro". Cuando encuentra todo eso, que me imprima el numero de registros encontrados. De modo que yo pueda ponerle al usuario en alguna pagina.

Usted tiene x ticket cerrados para el producto perro por valor de...

<?php echo $totalRows_Recordset8 * 975 / 100 ?>

Lo que en este caso, si despues de ejecutada la consulta
devuelve 1 serían = 9,75 pesos

Lo del usuario ya lo tengo resuelto puesto que por tratarse de joomla leo la sesion y la hago coincidir en la consulta con el valor $user.

Última edición por fabayan; 06/05/2010 a las 02:06
  #2 (permalink)  
Antiguo 06/05/2010, 02:07
 
Fecha de Ingreso: septiembre-2009
Mensajes: 87
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Novatillo: consulta en dos tablas distintas

Solucionado el asunto se llama INNER JOIN y hay una muy buena explicación en Wikipedia

http://es.wikipedia.org/wiki/Join
  #3 (permalink)  
Antiguo 06/05/2010, 03:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Novatillo: consulta en dos tablas distintas

Fabayan: EL INNER JOIN es una de las cláusulas más usadas en todas las consultas cuando se trata de más de una tabla.
Hay mucho más sobre estos temas. Lo que te conviene hacer es ir a la página de Maestros del Web: SQL y empaparte del tema de SQL para interiorizarte del uso de este lenguaje de consultas.
Además, aprovecha para leer otros posts y podrás apreciar el uso que se le da a esta y otras cláusulas que te serán de mucha ayuda.

Saludos
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: distintas, dos, 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 21:32.