Foros del Web » Programando para Internet » PHP »

seleccionar * de 3 tablas en un query

Estas en el tema de seleccionar * de 3 tablas en un query en el foro de PHP en Foros del Web. buenas.. presiso me den una mano.. como hago para selecciar todos los datos de 3 tablas con un solo query???? l que presiso seria algo ...
  #1 (permalink)  
Antiguo 19/01/2010, 14:56
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
seleccionar * de 3 tablas en un query

buenas.. presiso me den una mano.. como hago para selecciar todos los datos de 3 tablas con un solo query????

l que presiso seria algo asi

$Resultado=mysql_query("SELECT * FROM auto,camionetas,camiones where marca='$marca' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con) or die ("no selecciona datos");


pero no me deja... como lo haria?

muchas gracias de antemano
  #2 (permalink)  
Antiguo 19/01/2010, 15:42
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: seleccionar * de 3 tablas en un query

Cual es el error??...

Para seleccionar datos de mas de una tabla debes poner despues del from el nombre de las tablas.

Pero debes tener en cuenta que si no tienen algun campo en comun para unirlas te saldran todas las combinaciones posibles.
Salu2.
  #3 (permalink)  
Antiguo 19/01/2010, 16:12
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: seleccionar * de 3 tablas en un query

el problema es que solo me trae los registros de una tabla si lo pongo asi
$Resultado=mysql_query("SELECT * FROM camionetas,auto WHERE auto.marca='chevrolet' AND camionetas.marca='chevrolet' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con) or die ("no selecciona datos");

me muestra los de autos
si lo pongo asi

$Resultado=mysql_query("SELECT * FROM auto,camionetas WHERE auto.marca='chevrolet' AND camionetas.marca='chevrolet' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con) or die ("no selecciona datos");
me muestra los de camionetas... no me toma en cuenta las dos tablas...... solo una
  #4 (permalink)  
Antiguo 19/01/2010, 16:13
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: seleccionar * de 3 tablas en un query

aja. y perdon respondiendo a tu consulta.... todas las tablas son iguales.. con respecto a los campos
  #5 (permalink)  
Antiguo 19/01/2010, 16:15
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: seleccionar * de 3 tablas en un query

ps tambien existe el OR no ???

y no sabia que este tema fuera php...... a mi me parece mysql.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 19/01/2010, 16:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: seleccionar * de 3 tablas en un query

con or???? para que... el problema de la sintaxis no esta alli.. esta antes... pero igual... lo pasare a mysql haber que me dicen.... es solo que si bien es consulta a mysql... bue... todo php esta en lo mismo... asi y todo . gracias por las respuestas
  #7 (permalink)  
Antiguo 19/01/2010, 16:51
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: seleccionar * de 3 tablas en un query

Y no puede ser que los valores del LIMIT tengan algo que ver? Haz una prueba sin el LIMIT a ver qué te devuelve.
  #8 (permalink)  
Antiguo 19/01/2010, 16:55
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: seleccionar * de 3 tablas en un query

nup... sige igual... el limit es solo para el paginador... igual lo saque y sige mostrando solo los datos de una tabla...
  #9 (permalink)  
Antiguo 19/01/2010, 17:03
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: seleccionar * de 3 tablas en un query

pregunta: Porque lo tienes en tres tablas????

Regularmente cuando se manejan categorías no se crea una tabla por cada categoría, sino que pones todo en una sola tabla y agregas un campo "TIPO" para diferenciar la categoría a la que pertenecen los elementos.
  #10 (permalink)  
Antiguo 19/01/2010, 17:06
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: seleccionar * de 3 tablas en un query

si asi es... pero el hecho es que de cambiar eso ahora me complicaria todo el trabajo teniendo que reformar muchas otras consultas.... y tengo entendido q se puede logarar esto. no entiendo porque no me deja
  #11 (permalink)  
Antiguo 19/01/2010, 17:13
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: seleccionar * de 3 tablas en un query

En ese caso necesitarás esto:

http://www.techonthenet.com/sql/union.php

En este caso tu query quedaría así:

SELECT * FROM auto where marca='$marca' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar UNION
SELECT * FROM camionetas where marca='$marca' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar UNION
SELECT * FROM camiones where marca='$marca' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar

Tal vez deberías de calcular límite antes de armar la query dependiendo de la cantidad de categorías en las que bas a buscar...

Un consejo: tal vez te convena más crear una vista de tus tres tablas para unirlas en una sola usando esto:

http://dev.mysql.com/doc/refman/5.0/en/create-view.html

Y realizar tus consultas sobre la vista de forma mas sencilla:

SELECT * FROM vista_vehiculos where marca='$marca' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar

Etiquetas: query, seleccionar, 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 18:28.