Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/11/2008, 09:18
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Relación Tablas (un campo)

INNER JOIN es lo que en álgebra relacional se define como junta natural (natural join) y que especifica que dos tablas se unan en una junta usando un campo como pivote. Esto devuelve únicamente los registros de ambas tablas donde el valor de ese campo sea el mismo, siempre usando ese campo para unir dichos registros.
Para que la cláusula funcione se debe indicar cuál es el campo que se desea usar de igualador. En el caso de MySQL existen dos formas: ON Tabla1.Campo1 = Tabla2.Campo1, o bien USING(Campo1)
El primer caso se usa especialmente cuando los campos cruzados tienen distinto nombre en cada tabla. El segundo caso se usa solamente si el campo en cuestión tiene el mismo nombre en ambas tablas.
Por cada campo usado de pivote, se debe indicar un ON x1 = x2 AND x3 = x4 ... etc. en un caso y simplemente listarlos si se usa USING(x1, x2, x3, ... etc).

La exigencia para que esto funcione eficientemente es que el valor en ese campo sea único al menos en una de las dos tablas. Si fuese repetitivo en las dos, la junta daría un resultado repetitivo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)