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

Unir dos tablas sin relacion

Estas en el tema de Unir dos tablas sin relacion en el foro de Mysql en Foros del Web. Yo tengo una consulta relacionada o similar, en mi caso tengo 3 tablas dos de ellas que ya estan relacionadas por medio del nombre de ...
  #1 (permalink)  
Antiguo 03/03/2013, 12:01
 
Fecha de Ingreso: febrero-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: unir dos tablas sin relacion

Yo tengo una consulta relacionada o similar, en mi caso tengo 3 tablas dos de ellas que ya estan relacionadas por medio del nombre de usuario y lo que necesito es lograr que en la misma consulta mysql pueda agregar la seleccion de todos los campos de una tercera base de datos, he hecho miles de pruebas con INNER JOIN, RIGHT JOIN, LEFT JOIN, JOIN, y diversas opciones mas que he visto en internet pero en todas ellas me arroja error en sintaxis y al ser un completo novato en la materia me esta costando de sobremanera lograr mi objetivo.

La consulta actual es esta: SELECT * FROM posts,usuarios WHERE posts.usuario=usuarios.usuario ORDER BY post_utc DESC";

La idea es poder consultar todos los campos de la tabla "buddy" en la misma consulta para poder recorrer los registros de esa tabla en busca de comparativas entre el usuario y contraseña de las otras dos tablas y las de esta tabla pero sin relacionarlas con ella para que me muestre todos los posts porque me interesa que se muestren los posts de todos los usuarios.

Gracias a todos de antemano!
  #2 (permalink)  
Antiguo 04/03/2013, 05:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Unir dos tablas sin relacion

Código MySQL:
Ver original
  1. FROM posts INNER JOIN usuarios ON posts.usuario=usuarios.usuario
  2. ORDER BY post_utc DESC

Es mejor esta sintaxis.

Se entiende lo que quieres hacer pero no como lo quieres hacer...

Es decir dos tablas pueden o no estar relacionadas por una FK. Pero para poder "incluirlas" en una query tienen que tener alguna "relación" aun que no sea una FK...

La sentencia que has puesto te da todos los campos de las dos tablas de tal manera que los de la primera se emparejan con los de la segunda cuando usuario es igual en las dos....

Para emparejar con los campos de la tercera tabla debe haber algo que indique al motor que registros emparejar. Si no hay relación lo unico que puedes conseguir es un producto cartesiano es decir TODOS los registros resultantes de la primera query con TODOS los registros de la tercera tabla. No creo que sea esto lo que buscas.

Código MySQL:
Ver original
  1. FROM (posts INNER JOIN usuarios ON posts.usuario=usuarios.usuario)
  2.                      INNER JOIN buddy ON buddy.campocomun=???.campocomun
  3. ORDER BY post_utc DESC

Debes substituir ??? por la tabla que contenga el campo comun y "campocomun" por el nombre del campo. NO es necesario que el campo tenga el mismo nombre en los dos lados lo importante es que el contenido este relacionado....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 04/03/2013 a las 05:47
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 03:21.