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

Extraer de varias tablas

Estas en el tema de Extraer de varias tablas en el foro de Mysql en Foros del Web. Hola, tengo una duda sobre como tengo que "filtrar" en mi caso los datos de varias tablas. Tengo una base de datos con varias tablas ...
  #1 (permalink)  
Antiguo 30/03/2008, 11:51
 
Fecha de Ingreso: mayo-2006
Mensajes: 3
Antigüedad: 17 años, 11 meses
Puntos: 0
Información Extraer de varias tablas

Hola, tengo una duda sobre como tengo que "filtrar" en mi caso los datos de varias tablas.

Tengo una base de datos con varias tablas de usuarios, dos de las cuales son
user y user_extended.

Estoy creando listas de usuarios basandome en la tabla user, pero los resultados solo pueden darse si existen datos determinados en user_extended.

Tabla 1, user:

user_id - numerico
user_grupo - numerico

Tabla 2, user_extended:

user_extended_id - numerico
user_country - por ejemplo DE,ES,US,UK , etc

Por ejemplo una lista de usuarios con user_grupo 1 que cuyo user_contry sea DE


De momento tengo este codigo para seleccionar a los usuarios que me interesan segun el user_grupo..

Codigo 1:
Código:
//.
//.
//.
//.
//.


if ($sql->db_Selectuser("user", "*", "user_grupo='1' ORDER BY user_id DESC LIMIT 0,15"))

{

echo "Lista de usuarios";

}

//.
//.
//.
//.
//.
Ese es el promema, en la tabla user_extended, esta el campo user_country.
Por lo que me gustaria que solo se mostrasen los resultados del codigo 1, si en user_country de la tabla user_extended, los resultados son DE, por ejemplo.


Los usuarios tienen una ID, la cual es en user, user_id y en user_extended, user_extended_id

He probado de muchas formas, pero no encuentro la solución.
  #2 (permalink)  
Antiguo 30/03/2008, 13:57
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: Extraer de varias tablas

Podrías utilizar TAMBIÉN INNER JOIN, pero con una consulta como esta puedes conseguir lo que quieres y, según creo, de manera algo más rápida.

SELECT u.user_id, ue.user_country
FROM user u, user_extended ue
WHERE u.user_grupo =1
AND user_country LIKE "DE"
AND u.user_id = ue.user_extended_id
ORDER BY u.user_id
  #3 (permalink)  
Antiguo 31/03/2008, 05:25
 
Fecha de Ingreso: mayo-2006
Mensajes: 3
Antigüedad: 17 años, 11 meses
Puntos: 0
De acuerdo Re: Extraer de varias tablas

Graccias por tu respuesta!!

Finalmente lo he conseguido hacer de esta forma:

SELECT u.*, ue.*
FROM #user AS u LEFT
JOIN #user_extended AS ue ON ue.user_extended_id = u.user_id
WHERE u.user_grupo =1
AND ue.user_country LIKE 'DE'
ORDER BY u.user_id DESC
LIMIT 15

Abrazos y muchas gracias, espero que esto sirva para alguien mas.

En mi caso lo he utilizado envolviendolo con php y utilizando la variable if de este modo:

if ($sql -> db_Select_gen("SELECT u.*, ue.* FROM #user AS u LEFT JOIN #user_extended AS ue ON ue.user_extended_id = u.user_id WHERE u.user_grupo =1 AND ue.user_country LIKE 'DE' ORDER BY u.user_id DESC LIMIT 15")){

echo "";

}


Taluego!
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 12:32.