Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   php mysql consultar varias tablas (http://www.forosdelweb.com/f86/php-mysql-consultar-varias-tablas-506734/)

mimail 20/07/2007 05:42

php mysql consultar varias tablas
 
Hola, gracias por leer mi post

tengo que hacer una consulta para mostrar registros a partir de una primera tabla que contiene la condicion primaria

esto es

tabla1

col1 col2 col3 col4
x1 x2 x3 SI

recupero de esta tabla esos 3 valores donde se cumple SI

select * from tabla1 where col4=SI

con estos resultados debo recuperar informacion extendida de otras tablas

Tabla2

col-a col-b col-c
x1 y1 y2

como veran el valor de col-a corresponde con col1

mi consulta es

select * from tabla2 where col1=tabla1.x1

y lo mismo tengo que hacer con una tercera tabla con el valor de tabla 1 x2 y despues mostrar los resultados juntos registro por registro


seria algo como

x1 y1 y2 ..... x2 ..... x3 .......

el asunto es que no tengo ni idea de como agrupar las consultas y los resultados pues nunca he realizado consultas relacionadas de esta manera, me he documentado un poco a cerca de mysql: JOIN, IF y variables, pero lo cierto es que por ese lado no he logrado solucionar el asunto de usar el primer resultado como variables para luego usarlo como condiciones para mis siguientes consultas y tengo claro que esto seria mas facil por PHP.

Agradecere toda ayuda posible a esta tarea.

TolerantX 20/07/2007 08:11

Re: php mysql consultar varias tablas
 
Si están relacionadas si te serviría JOIN, pero creo que posteaste en el foro equivocado, ya que hay uno en este sitio especializado en bases de datos. Esperemos que un moderador mueva el tema para que te puedan ayudar mejor :)

Y si pones el código de tu consulta te ayudarás más rápido para que vean en qué te estás equivocando.

GatorV 20/07/2007 08:14

Re: php mysql consultar varias tablas
 
Deberías de leer acerca de Joins es mas facil asi relacionar tus tablas ej:
Código:

SELECT t1.*, t2.*, t3.* FROM `tabla1` AS t1 INNER JOIN `tabla2` AS t2 ON t1.col1=t2.col-a INNER JOIN `tabla3` AS t3 ON t1.col2=t3.col-b
Saludos.

GatorV 20/07/2007 08:15

Re: php mysql consultar varias tablas
 
Por cierto te muevo al foro de SQL.

Saludos.

mimail 20/07/2007 12:17

Re: php mysql consultar varias tablas
 
Gracias por las respuestas, esta es mi consulta


SELECT @usuarios := uid
FROM quiz_user_data
WHERE isdone =1;# Filas: 66
SELECT @usuarios2 := uid
FROM quiz_user
WHERE uid = @usuarios ;# Filas: 1
SELECT *
FROM user_extended
WHERE id = @usuarios2 ;

el asunto es que a pesar de tener 66 resultados de la primera consulta al final solo me devuelve el ultimo registro, estoy leyendo mas a cerca de JOIN pero despues de una siesta he pensado haciendo la consulta desde PHP puedo tomar uno a uno los campos de la primera tabla en un arreglo y despues realizar mis otras 3 consultas con ellos por separado y al final unirlos al presentarlo en tablas, igual creo que me estoy complicando pero ando fuera de tiempo y no es el unico asunto que estoy resolviendo respecto a estas tablas :/ , acepto sugerencias!

Gracias de nuevo

mimail 21/07/2007 03:02

Re: php mysql consultar varias tablas
 
he avanzado un poco mas y ya mejore mi consulta con JOIN, pero no consigo que los resultados de mi primer consulta sean mandatorios para el resto de las consultas

SELECT * FROM quiz_user_data,_quiz_user,_user_extended WHERE quiz_user_data.isdone =1 AND quiz_user_data.uid
= quiz_user.uid AND quiz_user.mosuid=user_extended.id

(ojo que la coma lei es igual a JOIN)

una consulta sencilla a quiz_user_data donde isdone =1 regresa 78 resultados,
pero la consulta completa como la he colocado arriba solo me devuelve 54, esto porque supongo omite los resultados repetidos y no quiero que sea asi, si encuentra un usuario repetido debo tener esos resultados.

A eso me refiero con que mi primera consulta sea mandatoria, es decir que me devuelva los 78 resultados y no solo 54 "depurados", alguna idea?

Gracias


La zona horaria es GMT -6. Ahora son las 06:38.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.