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

1 select para 2 tablas

Estas en el tema de 1 select para 2 tablas en el foro de Bases de Datos General en Foros del Web. HOla! Estoy queriendo hacer un select para dos tablas dentro de la misma base de datos pero no puedo: SELECT * FROM table1, table2 WHERE ...
  #1 (permalink)  
Antiguo 16/12/2007, 11:26
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 1 mes
Puntos: 0
1 select para 2 tablas

HOla!
Estoy queriendo hacer un select para dos tablas dentro de la misma base de datos pero no puedo:

SELECT * FROM table1, table2 WHERE nombre LIKE "'%$busqueda%'" ;

separar las tablas con comas no me funciona.
que puede estar sucediendo???
si quito una de las tables el query funciona perfectamente..

uso mysql 4.1.22 standard

GRACIASSSS
  #2 (permalink)  
Antiguo 16/12/2007, 12:48
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: 1 select para 2 tablas

SI lo que pretendes es hacer la misma búsqueda en 2 tablas de igual estructura, lo que tenés que usar es el operador UNION.

SELECT * FROM (table1 UNION table2) WHERE nombre LIKE "'%$busqueda%'" ;

Lo que hace ese operador es juntarte las 2 tablas en una sola, y luego hacer la búsqueda sobre esa tabla unificada.

La unión de las tablas es solo virtual, lo que en realidad hace el motor de base de datos, es ejecutar la consulta en la primera tabla, luego en la segunda tabla, une el resultado de las 2 consultas y eso es lo que retorna.
  #3 (permalink)  
Antiguo 16/12/2007, 13:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: 1 select para 2 tablas

Gracias TolaWare!

Pero sigo sin logrlo...

SEra un problema de parentesis o comillas??

$result = mysql_query("SELECT * FROM (tabla1 UNION tabla2) WHERE nombre LIKE '%$busqueda%'");
  #4 (permalink)  
Antiguo 16/12/2007, 13:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 89
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: 1 select para 2 tablas

Gracias TolaWare!

Pero sigo sin logrlo...

SEra un problema de parentesis o comillas??

$result = mysql_query("SELECT * FROM (tabla1 UNION tabla2) WHERE nombre LIKE '%$busqueda%'");
  #5 (permalink)  
Antiguo 16/12/2007, 21:42
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: 1 select para 2 tablas

Perdón
Cometí un error garrafal, me confundí la sintaxis del operador UNION.

La sintaxis correcta sería:

(SELECT * FROM table1 WHERE nombre LIKE "'%$busqueda%'")
UNION
(SELECT * FROM table2 WHERE nombre LIKE "'%$busqueda%'");

Mil disculpas.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 03:45.