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

2 bd consulta

Estas en el tema de 2 bd consulta en el foro de Bases de Datos General en Foros del Web. Salu2 a todos Pues con una duda como se hace la consulta a la base de datos de varias tablas y/o de varias bases de ...
  #1 (permalink)  
Antiguo 22/01/2004, 19:19
 
Fecha de Ingreso: agosto-2003
Ubicación: Mexico Df abajo del puente de municipio
Mensajes: 216
Antigüedad: 20 años, 8 meses
Puntos: 0
2 bd consulta

Salu2 a todos

Pues con una duda

como se hace la consulta a la base de datos de varias tablas y/o de varias bases de datos(mysql)

Bye
  #2 (permalink)  
Antiguo 22/01/2004, 20:30
Avatar de Bartak  
Fecha de Ingreso: enero-2004
Ubicación: Chilito
Mensajes: 121
Antigüedad: 20 años, 3 meses
Puntos: 0
Para una query dada, debes analizar qué columnas son
iguales para hacer las restricciones

En regla general deberán usar SELECT de la siguiente manera:
SELECT tablax.columna1, tablay.columna2 (si quieres todas ocupa "*")
|resultado que va a salir en |
|__________ pantalla __________|

FROM tablax, tablay, tablaz
| tablas que voy a |
|_ocupar (todas)___|

WHERE tablaz.columna3=tablay.columna2 AND ...;
| condicion lógica generalmente igualdades
|____entre columnas o con strings____________

Ocupa todos los operadores lógicos y de comparación.
En general no deberían necesitar nada más que estos
elementos (un SELECT + operadores lógicos y de comparación).

un ejemplo de esto es:

Entrega una lista con los nombres y carreras de todos los alumnos registrados.
Debemos sacar la información de 3 tabla:
alumno, estudia, carrera y los resultados están en alumno y carrera.

SELECT A.nombre_alumno, C.nombre_carrera
FROM alumno A, estudia E, carrera C
WHERE A.matricula_alumno=E.matricula_alumno
AND E.codigo_carrera=C.codigo_carrera;

si lo prefires lo puedes hacer asi , que resulta mas
entendible:
ponte tu si quieres El título de todos los libros que escribió J R R Tolkien.
En este caso vemos que hay que sacar la información de
3 tablas: autor, libro y autor de.

Con subqueries:

SELECT libro.titulo_libro FROM libro
WHERE libro.codigo_libro IN //"libro." referencia a la tabla libro
(SELECT autor_de.codigo_libro from autor_de
WHERE autor_de.codigo_autor IN (SELECT autor.codigo_autor FROM auto WHERE upper(nombre_autor)='J R R TOLKIEN'));

Con un SELECT:
SELECT L.titulo_libro from libro L, autor_de AD, autor A
WHERE upper(A.nombre_autor)='J R R TOLKIEN'
AND L.codigo_libro=AD.codigo_libro
AND AD.codigo_autor=A.codigo_autor;

espero haberte ayudado. no se si es posible hacer una consulta entre bases de datos diferente pero pienso que por logica no es posible, talvez exista algun trukiyo pero no cacho.
recuerda que en MySQL no existen las claves foraneas, lo tienes que hacer con tablas de transicion, es paja pero necesario en casos que se requieran.
saludo
__________________
"Llegado el momento supervisare my propia caida" - Alvaro Henriquez
  #3 (permalink)  
Antiguo 22/01/2004, 21:35
 
Fecha de Ingreso: agosto-2003
Ubicación: Mexico Df abajo del puente de municipio
Mensajes: 216
Antigüedad: 20 años, 8 meses
Puntos: 0
:O
ok
muxas gracias Bartak

Si era lo que andaba buscando :)

saludos
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




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