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

cambinar dos tablas o mas

Estas en el tema de cambinar dos tablas o mas en el foro de Mysql en Foros del Web. Hola posiblemente lo que planteare para muchos a de ser muy fácil pero a mi me esta quitando el sueño quiero combinar dos tablas las ...
  #1 (permalink)  
Antiguo 21/08/2011, 09:41
Avatar de reymolina  
Fecha de Ingreso: junio-2009
Mensajes: 92
Antigüedad: 14 años, 10 meses
Puntos: 9
cambinar dos tablas o mas

Hola posiblemente lo que planteare para muchos a de ser muy fácil pero a mi me esta quitando el sueño quiero combinar dos tablas las siguientes

Código:
`AMCMS_users` (
  `userkey` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) COLLATE latin1_spanish_ci NOT NULL,
  `password` varchar(49) COLLATE latin1_spanish_ci NOT NULL,
  `permissions` int(11) NOT NULL,
  `ip` varchar(15) COLLATE latin1_spanish_ci NOT NULL,
  `datereg` date NOT NULL,
  `email` varchar(255) COLLATE latin1_spanish_ci NOT NULL,
  `gamesplayed` int(11) NOT NULL DEFAULT '0',
  `avatar` varchar(255) COLLATE latin1_spanish_ci NOT NULL,
  `arcadempoints` int(32) NOT NULL,
  PRIMARY KEY (`userkey`)
y

Código:
`AMCMS_reviews` (
  `primkey` int(11) NOT NULL AUTO_INCREMENT,
  `articleid` int(11) NOT NULL,
  `name` varchar(255) COLLATE latin1_spanish_ci NOT NULL,
  `review` text COLLATE latin1_spanish_ci NOT NULL,
  `approved` tinyint(1) NOT NULL,
  `gameid` int(11) NOT NULL,
  `userid` int(11) NOT NULL,
  PRIMARY KEY (`primkey`)
por si sirve de algo la tabla AMCMS_reviews la utilizo para comentarios de la siguiente manera

Código:
$reviews = am_queries($db, "SELECT * FROM AMCMS_reviews WHERE gameid=$got_gameid AND approved=1 ORDER BY primkey DESC;");
pero ahora a los comentarios quisiera añadirle la fila de [ AMCMS_users , avatar ] lo cual lo e intentado de muchas maneras pero no me regresa el resultado que yo quiero que es los comentarios con sus respectivos creadores y el avatar de cada usuario.

no se si me e explicado bien en cualquier caso agradecería una ayuda o una luz al respecto si la explicación no fuera suficiente decirme para ver como profundizar en la misma
  #2 (permalink)  
Antiguo 21/08/2011, 21:34
Avatar de Rod_Man_mx  
Fecha de Ingreso: agosto-2009
Mensajes: 69
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: cambinar dos tablas o mas

Que tal, creo que lo que buscas es algo así:

Código:
SELECT us.username, us.avatar, re.primkey, re.name, re.review
FROM AMCMS_users us, AMCMS_reviews re
WHERE us.userkey = re.userid
AND approved=1 
AND gameid=$got_gameid 
ORDER BY primkey DESC
y un comentario, nunca uses * simplemente trae la información que debas de traer.

Saludos
  #3 (permalink)  
Antiguo 22/08/2011, 10:12
Avatar de reymolina  
Fecha de Ingreso: junio-2009
Mensajes: 92
Antigüedad: 14 años, 10 meses
Puntos: 9
Respuesta: cambinar dos tablas o mas

Al parecer algo hago mal pues al hacer la consulta no me da ningún resultado no me da error pero tampoco me da ningún resultado explico como realizo la consulta


la consulta sql
Código:
$reviews = am_queries($db, "SELECT us.username, us.avatar, re.primkey, re.name, re.review
FROM AMCMS_users us, AMCMS_reviews re
WHERE us.userkey = re.userid
AND approved=1 
AND gameid=$got_gameid 
ORDER BY primkey DESC;
");
luego creo una variable
Código:
$smarty->assign('gameReviews', $reviews);
y luego hago la consulta de los comentarios de la siguiente manera
Código:
{foreach from=$gameReviews item=individualReview}
                     <div class="individualreview">Comentario De <i><img src="./uploads/{$individualReview.1}" style="border: 1px solid rgb(51, 51, 51);" width="21px" height="20px">{$individualReview.0}</i><p />
                        <div class="reviewtext">{$individualReview.4}</div>
                     </div><br /><p />
                  {/foreach}
No se que pueda ser pues me e visto liado con el código.
solo para agregar una interrogante que posiblemente afecte al tema la fila userid de la tabla AMCMS_reviews es nueva por lo tanto los registros que tiene son 0 en su totalidad no se si eso podría afectar en todo caso si afectara si hubiera alguna forma de omitir la inclusión de esta en la consulta.
gracias nuevamente por la ayuda prestada
  #4 (permalink)  
Antiguo 22/08/2011, 10:41
Avatar de reymolina  
Fecha de Ingreso: junio-2009
Mensajes: 92
Antigüedad: 14 años, 10 meses
Puntos: 9
Respuesta: cambinar dos tablas o mas

Bueno agradezco la ayuda de Rod_Man_mx despues de hacerme la interrogante de la fila userid de la tabla AMCMS_reviews cambie el WERE y dege el codigo de la siguiente manera

Código:
$reviews = am_queries($db, "SELECT us.username, us.avatar, re.primkey, re.name, re.review
FROM AMCMS_users us, AMCMS_reviews re
WHERE us.username = re.name
AND approved=1 
AND gameid=$got_gameid 
ORDER BY primkey DESC;");
pues a mi lógica eran las únicas filas que eran iguales en las dos tablas obtengo el resultado que quería y va de maravilla aunque tengo una duda todavía es si es correcto hacer ese tipo de WERE gracias nuevamente
  #5 (permalink)  
Antiguo 23/08/2011, 22:57
Avatar de Rod_Man_mx  
Fecha de Ingreso: agosto-2009
Mensajes: 69
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: cambinar dos tablas o mas

En efecto el código que te propuse lo que hace es traerte los resultados con las filas que empaten, precisamente este es un tipo de JOIN y pues es una de las tantas funcionalidades que tienen los ID dentro de las tablas, por otra parte procura hacer siempre esas comparaciones solo con los ids.

Saludos
  #6 (permalink)  
Antiguo 24/08/2011, 02:42
Avatar de reymolina  
Fecha de Ingreso: junio-2009
Mensajes: 92
Antigüedad: 14 años, 10 meses
Puntos: 9
Respuesta: cambinar dos tablas o mas

claro gracias me lo suponia que era mas conveniente hacerlo con id pero cuando puse el id de la tabla AMCMS_reviews lo hice para que se me pudiera explicar mejor el ejemplo que se me podia dar y partir de ese ejemplo pero la verdad muchas gracias ya dias estaba provando con esa conulta gracias nuevamente

Etiquetas: select, tabla, tablas
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 01:47.