PHP y MySQL para gentes de letras - Anexo II: INNER JOIN, una instrucción muy util para juntar tablas

17 - Anexo II: INNER JOIN, una instrucción muy util para juntar tablas

[editar]
Curso gratis creado por Coder. Extraido de: http://www.tomatoma.ws/subsecciones.php?forum_id=27&catid=22&todos=1
08 de Marzo de 2006

Muy bien, aprendices del Sql, hoy hablaremos de la instrucción INNER JOIN. Muy útil para casos concretos.
Primero de todo vamos a crear una situación hipotética:
Imaginemos que tenemos que hacer una web que contiene unos artículos en referencia a comentarios de novelas, y que son doce escritores de prestigio los que van introduciendo esas críticas.
Lo normal y más básico para un programador sería pensar en base de datos y lenguaje dinámico. Una buena elección podría ser trabajar con PHP y MySql (aunque para lo que voy a decir basta con una base de datos de tipo Sql).
Lo primero que nos viene a la mente es: haré una tabla, llamémosla criticas. En ella almacenaríamos cada artículo. Los campos básicos serían ID, Libro, Escritor (del libro, nunca confundir con el autor de la crítica), Editorial, año ... y Autor de la crítica.
Pero y si quisiéramos, como es normal, poner en la misma crítica una referencia al autor de la critica, aúnque sólo sea un pequeño texto biográfico? Tendríamos que repetir un mismo texto repetidas veces en la base (la biografia de doce autores en, pongamos 150 registros) y si quisieramos modificarlo y hubiera 70 entradas con ese autor... eso sería un desastre.
Entonces queda claro que hay que hacer una referencia a otra tabla que contenga a los autores, con sus respectivos datos. La tabla autores. Cada autor tendría su ID, su nombre y su biografía, además de otros datos como webpage, e-mail, bibliografía...
Algunos dirían: pues fácil, haces dos querys a la base. en uno le dices

|| Código: || || SELECT * FROM criticas WHERE ID ='37' ||


y en otra

|| Código: || || SELECT * FROM autores WHERE ... ||


where qué? tendrías que sacar una variable de sql a php, otra vez a sql...
Nada! Si alguien sugiere eso desconfiad de él y de su familia (es broma ;D) existe un método sencillo y eficaz: el INNER JOIN
Tan sencilla es la sentencia como:

|| Código: || || SELECT * FROM criticas INNER JOIN autores ON criticas.autor = autores.id WHERE criticas.id='7' ||


De esta forma estamos uniendo las dos tablas, cada vez que en criticas el autor sea n, en autores se unirá su correspondiente fila, con id=n.
Traduciendo al español la sentencia dice escatamente:

|| Código: || || SELECCIONA TODOS LOS CAMPOS UNIENDO criticas CON autores DONDE el campo autor de la tabla criticas SEA IGUAL A el campo id de la tabla autores EN EL REGISTRO EN QUE el id de criticas sea 7 ||



En definitiva, el inner join une dos tablas, donde encajan un campo de una con el mismo de la otra.
A partir de ahora las tablas se hacen más manejables y flexibles.
Y recordad!:
*Para seleccionar campos de cada tabla : tabla.campo universal en sql, dato importante.
*Estructura del inner join: SELECT campos FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
*Antes de hacer barbaridades con vuestras bases de datos documentaos un poco, lo digo por experiencia ;)
(no usé fuentes concretas para realizar este didactico articulo, me baso en aprendizaje personal, pero en el google seguro que encuentras mucha informción del tema!)
Empezamos con buen pie el 2006 !
[editar]

22 opiniones

exelentisimo

dure dos semanas buscando un tutorial y este es el mas detallado y que he visto.
gracias por tus aporte felicitacione
Gracias '

Gracias hermanoo..
al fin entiendo y bastante bien el inner join...fuiste de gran ayuda...
Unix/Linux
Instalacion PHP

no pude lograr instalar php, pero apache me funciona de perilla, he bajado distintas versiones, pero en ninguna puedo hacerlo funcionar creando un archivo .php y visualizarlo en la interfaz web
El salvador

Esta version descarga amiga marcela XAMPP 1.7.2!
Instalacion apache.

Hola no fui capaz de instalar apache no encuentro al version que dices ahi, porfa me pueden colaborar.
1 2 3 4 5 | siguiente >

Cursos gratis relacionados con 'PHP y MySQL para gentes de letras'

Si nunca se te ha pasado por la imaginación que podrías llegar a programar, con... Más »

Autor y licencia de 'PHP y MySQL para gentes de letras'

Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.