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