Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Mezclar tablas? (http://www.forosdelweb.com/f18/mezclar-tablas-607919/)

RJD 21/07/2008 13:05

Mezclar tablas?
 
Cómo podría mostrar dos tablas de una base de datos Mysql que tienen diferentes campos?

Ejemplo:
Tabla 1 -> nombres, apellidos, ciudad
Tabla 2 -> mote, país, ocupación

Y ordenarlo según mote y nombre, es decir que aparezcan mezcladas las dos tablas

Gracias!

Mort20 21/07/2008 13:56

Respuesta: Mezclar tablas?
 
Deberías mirarte la parte de los "join" en un manual de MySQL.
Pero concretamente en tu caso el código sería algo así:
Código:

SELECT * FROM Tabla1 AS uno JOIN Tabla2 AS dos GROUP BY dos.mote,uno.nombre;
Puedes añadir asc o desc al final para ordenar la agrupación, también puedes ver distinct para no obtener repeticiones en la salida.

RJD 21/07/2008 19:04

Respuesta: Mezclar tablas?
 
Muchas gracias,

pero entonces ahora, como hago para ordenar la informacion extraida de la BD. Cómo debería plantear el siguiente código? que hay mal?:

<? $result = mysql_query("SELECT * FROM Tabla1 AS uno JOIN Tabla2 AS dos GROUP BY dos.mote,uno.nombre ASC");
while($r=mysql_fetch_array($result))
{
$nombre = $r['nombre'];
$ocupacion = $r['ocupacion'];
$pais = $r['pais'];
...
...
etc, etc


Y después de eso, como puedo decir, si el que toca enseñar ahora es de la tabla 1, az esto:
- Nombre: $nombre
- Apellidos: $ apellidos
etc

Y si es de la tabla 2:
-Mote: $mote
-Ocupacion: $ocupacion
etc





No se si me explico correctamente, espero que sí.
Muchas gracias

RJD 22/07/2008 05:05

Respuesta: Mezclar tablas?
 
Alguien me ayuda plis?

Anastasiaphp 22/07/2008 05:35

Respuesta: Mezclar tablas?
 
Creo que tienes que poner:

ORDER BY uno.nombre ASC

Anastasiaphp 22/07/2008 05:36

Respuesta: Mezclar tablas?
 
Es decir:

$result = mysql_query("SELECT * FROM Tabla1 AS uno JOIN Tabla2 AS dos GROUP BY dos.mote,uno.nombre ORDER BY uno.nombre ASC");

Si lo quieres ordenar por el nombre.

RJD 22/07/2008 06:05

Respuesta: Mezclar tablas?
 
No se si me he explicado bien, lo que pretendo es hacer algo así, pero no se como:

Código PHP:

<? $result mysql_query("SELECT * FROM Tabla1 AS uno JOIN Tabla2 AS dos GROUP BY dos.mote,uno.nombre ASC");
while(
$r=mysql_fetch_array($result))
{
$nombre $r['nombre'];
$ocupacion $r['ocupacion'];
$pais $r['pais'];
...
...
etcetc


Y después de eso
como puedo decirsi el que toca enseñar ahora es de la tabla 1az esto:
Nombre$nombre
Apellidos: $ apellidos
etc

Y si es de la tabla 2
:
-
Mote$mote
-Ocupacion$ocupacion
etc


Mort20 22/07/2008 12:52

Respuesta: Mezclar tablas?
 
Creo que no has acabado de entender el resultado de esa consulta: el resultado son filas ordenadas por mote - en caso de empate se mira el nombre - en las cuales hay TODOS los campos de esa "prioridad" de la Tabla1 y Tabla2, así que en tu $r tienes tanto $r['nombres'] como $r['mote'], así como los demás.
Sólo coge el que te interese en cada momento, sea de Tabla1 o Tabla2, ya que en $r tienes a ambos con los nombres de tu BD. En la siguiente pasada del bucle vuelves a tener lo mismo, sólo que con el siguiente orden de prioridad, es decir, el siguiente resultado de la ordenación por mote y nombre.

De todas formas, yo sólo puse una consulta que creo que es lo que buscabas, si no lo has comprobado compruebalo en una consola MySQL insertando esa consulta directamente y viendo el resultado, y en todo caso si no entiendes estos temas de consultas que vas a usar, es mejor que mires en el manual y lo comprendas, que si no puedes tener algún problema después.


La zona horaria es GMT -6. Ahora son las 22:25.

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