Consulta a dos tablas conjuntamente
Cómo puedo hacer para acceder a dos tablas distintas en una misma base de datos con una sola consulta. Te pongo un ejemplo:
$busqueda = mysql_query(" (select * FROM cuestiones_teoria WHERE IdTema='$array_temas[$t]' ORDER BY RAND()) UNION (select * FROM situaciones_practicas WHERE IdTema='$array_temas[$t]' ORDER BY RAND()) LIMIT 5 ") ;
Quiero que todo me quede en una única consulta para luego poder recorrer el resultado con un array ==> while( $busqueda_array = mysql_fetch_array($busqueda) ){.
Haciendo lo de arriba me da error. He probado ha hacer las consultas de cada tabla por separado y luego unir los dos arrays( utilizando array_merge() ) que resultan de cada consulta para finalmente tener un solo array que lo contenga todo, pero el resultado no es el que yo esperaba porque los nombres de casi todos los campos de las dos tablas son iguales y entonces la función array_merge() me los une y me da algo muy extraño.
Espero haberme explicado bien, si no es así, por favor dímelo e intentaré explicarme mejor. Haber si consigues lo que quiero.
$busqueda = mysql_query(" (select * FROM cuestiones_teoria WHERE IdTema='$array_temas[$t]' ORDER BY RAND()) UNION (select * FROM situaciones_practicas WHERE IdTema='$array_temas[$t]' ORDER BY RAND()) LIMIT 5 ") ;
Quiero que todo me quede en una única consulta para luego poder recorrer el resultado con un array ==> while( $busqueda_array = mysql_fetch_array($busqueda) ){.
Haciendo lo de arriba me da error. He probado ha hacer las consultas de cada tabla por separado y luego unir los dos arrays( utilizando array_merge() ) que resultan de cada consulta para finalmente tener un solo array que lo contenga todo, pero el resultado no es el que yo esperaba porque los nombres de casi todos los campos de las dos tablas son iguales y entonces la función array_merge() me los une y me da algo muy extraño.
Espero haberme explicado bien, si no es así, por favor dímelo e intentaré explicarme mejor. Haber si consigues lo que quiero.
5 Respuestas
Respuesta de llarensj
Respuesta de pedroip
1
Respuesta de pkdick
1
Respuesta de jahg_23
1
Respuesta de maxbiag