You are on page 1of 27

coge la informacin y corre

Boozox
Explicacin visual
de los SQL Join
Unir tablas con
SQL
12 de octubre del 2007 Escrito por Alex Barros
Me ha parecido muy interesante el artculo escrito por Jeff Atwood titulado A Visual Explanation of SQL Joins.
Tanto es as que he decidido traducir este artculo al espaol. Disfrutad:
Autor Original: Jeff Atwood
Fecha: 11/10/07
Traductor: Alex Barros
Pens que el post de Ligaya Turmelle sobre SQL joins era una genial introduccin para los desarrolladores primerizos. Dado
que los SQL joins estn basados fundamentalmente en conjuntos relacionados, el uso de diagramas de Venn para explicarlo
parece lo ms acertado. De todas formas, igual que los comentaristas de su post, opino que sus diagramas de Venn no
encajaban con la sintaxis de SQL join en mis pruebas.
An as me encanta el concepto, as que veamos si podemos hacerlo funcionar. Supongamos que tenemos las dos siguientes
tablas. La tabla A est a la izquierda, y la tabla B est a la derecha. Las rellenaremos con cuatro registros cada una.
Ahora unamos estas dos tablas por el campo nombre de algunas formas distintas, y veamos si podemos obtener unas
representaciones conceptuales con los ingeniosos diagramas de Venn.
Inner join slo produce los registros que coinciden en las dos tablas A y B.
SELECT * FROM TablaA .
INNER J OIN TablaB .
ON TablaA.nombre =TablaB.nombre .

Comenzar descarga
download.pconverter.com
Descarga gratis inmediata. Rpido y fcil!
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
1 de 27 24/07/2014 22:39
Full outer join produce el conjunto de todos los registros en las tablas A y B, con registros coincidentes en ambos lados
cuando sea posible. Si no hay coincidencia, el lado que falta contendr null.
SELECT * FROM TablaA .
FULL OUTER J OIN TablaB .
ON TablaA.nombre =TablaB.nombre .

Left outer join produce el conjunto completo de registros de la tabla A, con los registros coincidentes (si estn disponibles) en
la tabla B. Si no hay coincidencia, el lado derecho contendr null.
SELECT * FROM TablaA .
LEFT OUTER J OIN TablaB .
ON TablaA.nombre =TablaB.nombre .

Para producir el conjunto de registros en la tabla A, pero no en la tabla B, usamos el mismo Left Outer Join, y luego excluimos
los registros que no queremos del lado derecho mediante una clusula Where.
SELECT * FROM TablaA .
LEFT OUTER J OIN TablaB .
ON TablaA.nombre =TablaB.nombre .
WHERE TablaB.id IS NULL .

Para producir el conjunto de registros nicos de la tabla A y la tabla B, usamos el mismo Full Outer Join, y luego excluimos
los registros que no queremos de los dos lados mediante una clusula Where.
SELECT * FROM TablaA .
FULL OUTER J OIN TablaB .
ON TablaA.nombre =TablaB.nombre .
WHERE TablaA.idIS NULL .
OR TablaB.idIS NULL .
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
2 de 27 24/07/2014 22:39

Tambin hay un cross join, el cul no puede ser expresado con un diagrama de Venn:
SELECT * FROM TablaA .
CROSS J OIN TablaB .
Esto une todo con todo, dando como resultado 4 x 4 =16 filas, muchas ms de las que tenamos en los conjuntos originales.
Si haces unos simples clculos, puedes ver por qu es un Join muy peligroso de ejecutar en tablas grandes.
Ver tambin: Hacer Mltiples Join en una sola Sentencia
Categorias: MySQL, Web |
Sigue una dieta equilibrada, y escribe un comentario al da. (Dr. Manuel Torreiglesias)
Hay 150 comentarios, pero nos falta el tuyo
14
octubre
22:13 bendem Ha dicho:
Whow!! Muchas gracias joder que sencillo que es verlo con estos grficos de conjuntos.
14
octubre
22:19 Alex Barros Ha dicho:
Eso mismo pens yo al leer el artculo original. No pude resistir la traduccin, esto nadie debera perdrselo.
DbRunas - Explicacin visual de los SQL Join - Unir tablas con SQL Ha dicho:
[...] of SQL Joins. Tanto es as que he decidido traducir este artculo al espaol.Articulo completo: http://boozox.net
/mysql/explicacion-visual-de-los-sql-join-unir-tablas-con-sql/ [...]
15
octubre
14:00 gafeman Ha dicho:
ojala hubiese tenido como tu y no uno que conozco jeje
15
octubre
17:01 Alex Barros Ha dicho:
Jeje, siempre viene bien una explicacin detallada como esta.
A ms de un profesor de mi universidad le peda yo que hiciera cosas as
Como dice un dicho espaol: Las cosas claras, y el chocolate espeso!
UnLugar Blog Archive SQL Join : entendiendo visualmente Ha dicho:
[...] Por aqu me encuentro con este post: Explicacin visual de los SQL Join. [...]
25
octubre
18:15 PRINCIPAINTE Ha dicho:
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
3 de 27 24/07/2014 22:39
CON ESTE ARTITUCULO SALI DE DUDAS SOBRE EL MANEJO DE JOIN, ESTA CLARISIMO OJALA HUBIERA MAS
ARTICULOS ASI DE BIEN EXPLICADOS, IGUAL SI ME PUDIERAN AYUDAR CON SUM YA QUE LO HE
INTENTADO PERO NO PUEDO REALIZAR UNA CONSULTA UTILIZANDO SUM Y JOIN
ESTE ES MI CODIGO, PERO CUANDO TRATO DE AGREGAR MAS CAMPOS PARA MOSTRAR ME MANDA ERROR
/*TRANSFORM Sum(T0.QUANTITY) AS CANTIDAD, SUM(T0.LINETOTAL)AS TOTAL*/select T0.BASECARD AS
CODIGO, SUM ( T0.QUANTITY ) AS CANTIDAD, sum( T0.LINETOTAL) AS TOTAL
from OINV T1 FULL OUTER JOIN INV1 T0 ON T0.basecard =T1.cardcode GROUP BY T0.basecard ORDER BY
T0.basecard
26
octubre
14:04 Alex Barros Ha dicho:
Principiante, te agradecera que no escribas en maysculas, poque cuesta leer, y porque se considera gritar.
No domino demasiado el lenguaje SQL (este artculo es una traduccin). Lo nico que he notado extrao en tu cdigo son las
asignaciones. Cuando escribes Sum(T0.QUANTITY) AS CANTIDAD asignas a CANTIDAD el resultado anterior, pero que
yo recuerde no debe llevar comillas, cuando haces asignaciones.
El cdigo te quedara as:
SELECT T0. BASECARD AS CODI GO, SUM ( T0. QUANTI TY ) AS CANTI DAD, sum( T0. LI NETOTAL) AS TOTAL
f r omOI NV T1 FULL OUTER J OI N I NV1 T0 ON T0. basecar d =T1. car dcode GROUP BY T0. basecar d ORDER BY
T0. basecar d
Contstame si te ha funcionado o no.
26
diciembre
19:06 maykol Ha dicho:
estoy usando la siguiente consulta de union y me da error de sintaxis en la clausula from
SELECT *FROM consultorio
INNER JOIN caminata 6 minutos ON consultorio.ecg_pdf =caminata 6 minutos.ecg_pdf
27
diciembre
1:20 Alex Barros Ha dicho:
Separa el asterisco del from, eso lo primero.
Y en segundo lugar, no recomiendo que tengas una tabla cuyo nombre contiene espacios.
Aparte de esos dos apuntes, todo el resto es correcto, si existen las tablas consultorio y caminata 6 minutos y los campos
ecg_pdf en las dos tablas.
14
enero
6:29 VicHaunter Ha dicho:
Un premio a la sencillez. Me quito el sombrero, has resuelto todas mis dudas sobre su funcionamiento y mira que le he dado
vueltas. Gracias y un saludo
14
enero
21:16 Alex Barros Ha dicho:
Todo un placer. Me alegra que pueda servir. Es un recurso que no pude dejar de traducir, por su enorme claridad ante esta
cuestin algo compleja.
21
febrero
16:39 Fabian Andres Ha dicho:
ESta muy interesante, te amo.
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
4 de 27 24/07/2014 22:39
3
marzo
13:12 Nico Ha dicho:
Excelente artculo, muchas gracias por tu tiempo. Te hago una consulta: es posible hacer un Inner Join con 3 tablas? porque he
probado diferentes sintaxis pero no encuentro una que resulte.
Una vez ms, muchas gracias.
3
marzo
13:43 Jorge Troncoso Ha dicho:
Alex Barros, con una simple prueba podras darte cuenta que no es necesario separar el asterisco de la palabra FROM, eso no
tiene nada que ver. De echo una consulta puede inclusive hacerse asi:
select*fromtabla
y funcionar.
Saludos.
3
marzo
21:28 Alex Barros Ha dicho:
Gracias por el apunte, Jorge. No conoca si funciona escribiendo todo junto, era ms un tema de pulcritud en el cdigo.
@nico: Realmente no lo se, y algunas personas me lo han preguntado. Investigar al respecto.
1
abril
0:05 MARINO MENDEZ Ha dicho:
eres el mejor del mundo, estoy a punto de ganarme 3,000 dolares gracias a ti, enviame un correo a ver si se te pega algo
1
abril
17:34 paty Ha dicho:
hola que tal esta genial todo esto aunque tengo una preguntilla
cuando tengo dos tablas tabala a y tabla b solo quiero que salga una sola vez el campo con el que estan ligadas espero me
entiendas y me ayudes gracias
4
abril
15:49 Alex Barros Ha dicho:
@paty: debera saber un poco ms el contexto en el que te encuentras. Ests en un script PHP? si deseas que te ayude, tendrs
que proporcionar un poco ms de informacin.
10
abril
21:45 Sandro Ha dicho:
SELECT (campoligado) FROM TABLA A, TABLA B
WHERE A.campoligado =B.campoligado AND
A.campoligado =?
10
abril
21:46 Sandro Ha dicho:
Muy Agradecido por la Traduccion
11
abril
13:33 Alex Barros Ha dicho:
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
5 de 27 24/07/2014 22:39
No entiendo muy bien tu primer comentario, Sandro. Necesitas que te ayude con alguna sentencia SQL?
En ese caso te pido que me detalles cul es el problema y me comentes un poco el contexto en el que te encuentras.
11
abril
17:04 paty Ha dicho:
Muchas gracias Alex por todo y dejame decirte que estoy haciendo una aplicacion en netbenas osea con java y como
manejador de base de datos en mysql
11
abril
19:51 De un principio Piante Ha dicho:
Buenisima explicacin, conceptual al maximo.
digno.
Alex
11
abril
20:27 De un principio Piante Ha dicho:
Alex,
Mi viejo please,
Esta query de consistencia, funciona, pero, debido al universo (cantidad de registros) de algunas tablas, necesito sumar en esta
misma query los que quedan con OK o con error, como lo hago?.Gracias.
Atte, Alex Quiroz.
select tabla1.campo1, tabla2.campo1,
(Case when tabla1.campo1 =tabla2.campo1 Then
OK Else ERROR
End)AS resp_create
FROM tabla1 INNER JOIN tabla2 tabla1.llave_tabla1=tabla2.llave_tabla2 Where tabla1.llave_tabla1 IS NOT Null
and IS NOT Null tabla2.llave_tabla2
Order by resp_create
23
abril
17:43 luis alberto Ha dicho:
hola ojala me puedan ayudar, soy nuevo en esto del mysql, estoy realizando una base de datos con php quiero mostrar
informacion de dos tablas que cree cliente y ciudad ellas tienen en comun el campo cod_ciudad, la idea es mostrar la
informacion de la tabla ciudad tambien en el mismo reporte.
gracias de antemano
23
abril
23:41 Alex Barros Ha dicho:
Una vez ms me peds ayuda muy general.
Luis: Busca tutoriales sobre lectura y muestra de tablas SQL, practica, despus rene informacin sobre la unin Inner Join en
SQL (como este artculo), practica, haz prueba y error.
Es la nica forma de enfrentarse a estas cosas.
Si tienes alguna duda concreta, entonces ya puedes contactar conmigo por mail, o mediante el blog. Pero dudas generales, son
demasiado complejas de explicar.
Un saludo.
28
abril
5:09 luis alberto Ha dicho:
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
6 de 27 24/07/2014 22:39
Bueno gracias a tu consejo investige un poco mas acerca de consultas y logre mi objetivo que era mostrar la informacion de
varias tablas en una sola consulta total no se si sea la mas idonea y asi quedo
SELECT * FROM CLIENTE,CIUDAD,ACTIVIDAD_ECONOMICA,DEPARTAMENTO WHERE
(CLIENTE.cod_ciudad=CIUDAD.cod_ciudad)and(CLIENTE.cod_actividad=ACTIVIDAD_ECONOMICA.cod_actividad)and
(CIUDAD.cod_depto=DEPARTAMENTO.cod_depto)and (CLIENTE.nom_cliente LIKE % . $_POST['txtbusqueda'] . %
como ves se torno algo extensa y compleja por lo menos para mi ahora mi inquietud es si hay forma de simplificar esta
consulta, y ademas quiero hacer una busqueda multiple desde varios textbox, porque como ves en la parte final de la consulta
involucro la busqueda desde un text identificado como txtbusqueda al campo nomcliente, ahora quiero buscar en 6 campos a
la ves con valores introducidos en 6 textbox es posible esto?
28
abril
12:39 Alex Barros Ha dicho:
La sentencia SQL no es demasiado extensa, al menos en comparacin con muchas que he visto y con las que he trabajado. Por
la extensin no te preocupes demasiado.
Si quieres buscar en 6 campos al mismo tiempo, puedes convertir el ltimo parentesis en una serie de ORs que busquen en esos
campos. Por ejemplo:
and (CIUDAD.cod_depto=DEPARTAMENTO.cod_depto)and (CLIENTE.nom_cliente LIKE % .
$_POST[txtbusqueda] . % OR TABLA.campo LIKE % . $_POST[txtbusqueda2] . % OR TABLA2.campo2 LIKE
% . $_POST[txtbusqueda3] . % etc)
29
abril
17:42 luis alberto Ha dicho:
Gracias Alex por tu pronta respuesta, me ha sido de gran ayuda para entender mas acerca de las consultas en mysql, segui tu
consejo al poner los or si dejo cualquiera de los 6 campos de busqueda vacio no filtra informacion me sigue mostrando todos
los registros sin embargo si en vez de or pongo and filtra la busqueda por el criterio que ponga en el los texbox, aun la logica
no la comprendo no tengo muy claro la diferencia entre un and y un or por lo que realize la consulta a prueba y error si me
pudieras explicar la diferencia te agradeceria puede ser algo tonto pero es mejor pasar por tonto 5 minutos que toda la vida.
2
mayo
3:24 ARCANGEL Ha dicho:
OLA SR. ALEX KISIERA K ME AYUDARA PARA PODER ENCONTRAR UNA SENTENCIA PARA PODER LISTAR
LAS TABLAS DEL SISTEMA.SERIA DE MUI AGRADO K M BRINDARA SU AYUDAD ANTE MANO MIL
GRACIAS
2
mayo
12:13 Jos Cabo Ha dicho:
Hola Arcangel,
Escribir en maysculas en internet y en la web es sinnimo de gritar por eso hay gente, yo me incluyo, que puede sentirse
incomodada. Por favor, escribe en minsculas.
Sobre tu duda, cuando Alex tenga un rato estoy seguro de que te echar una mano.
2
mayo
15:11 Alex Barros Ha dicho:
Buenas Arcangel. Como ha dicho Jos Cabo, te agradeceramos que escribieras de forma adecuada.
Sobre tu duda, tendrs que explicar mejor el contexto, y qu es lo que deseas. Cuando hablas de el sistema a qu te refieres?
La forma de listar tablas, suele ser con PHP, y las funciones que este lenguaje ofrece para tratar con tablas de tipo MySQL
(que encontrars en esta direccin: http://es.php.net/manual/es/ref.mysql.php)
Un saludo.
9
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
7 de 27 24/07/2014 22:39
mayo
18:42 Daniel Ha dicho:
Muy explicativo, gracias por compartirlo
Saludos!!
13
mayo
17:05 Alberto Ha dicho:
Muy buena explicacin, saludos
SQL Join: explicacin visual Sayonara, Baby! Ha dicho:
[...] Explicacin visual de los SQL Join [...]
31
mayo
6:36 Gaston Ha dicho:
Hola: Quisiera saber si hay alguna instruccin JOIN que pueda servirme para lo siguiente:
tengo 2 tablas diferentes, una con 10 campos y otra con 15 y entre ellas hay 4 campos equivalentes (contienen datos del
mismo tipo), pero con distintos nombres. Necesito obtener como resultado de la cosulta, una tabla que muestre slo los campos
equivalentes 4 (no 8), que despliegue los registros de ambas tablas.
Espero haberme explicado y que me puedas ayudar.
Gracias de antemano,
Gaston
2
junio
12:16 Saiyine Ha dicho:
Se pueden unir columnas?
Es decir, tengo tabla1 con la columna idtabla1 de enteros, y la tabla2 con la columna idtabla2:
tabla1[idtabla1,saludos] =[1,"hola"],[2,"adios"]
tabla2[idtabla2,vehiculos] =[17,"coche"],[84,"moto"]
Se puede hacer una query que devuelva [1,2,17,84] ???
Gracias.
3
junio
17:29 EMMANUEL Ha dicho:
EXCELENTE!!!
Ejemplo bastante claro y facil de entender, mil gracias
16
junio
18:33 pikamorfo Ha dicho:
mu grande la explicacion !!!!!! DDD espero que me sirva en el examen!
16
junio
23:06 Alex Barros Ha dicho:
Gracias. Y mucha suerte con el examen, pikamorfo
18
junio
17:39 Doris pinto Ha dicho:
Hola necesito ayuda
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
8 de 27 24/07/2014 22:39
Necesito hacer una busqueda de tablas diferentes y tengo este codigo pero no funciona.
asignar.ci,asignar.nrotiket,detalleasig.serial,usuarios.nombre,tipoequipos.descripcionseriales.codestado FROM asignar LEFT
JOIN usuarios on asignar.ci=usuarios.ci LEFT JOIN seriales on seriales.serial=detallesasig.serial LEFT JOIN equipos on
equipos.codequipo=seriales.codequipo LEFT JOIN tipoequipos on tipoequipos.codtipo =equipos.codtipo =seriales.codestado
WHERE asignar.ci= & RESPUESTA &
Nota:la ci la busco en la tabla asignar pero el nombre q corresponde a esa ci esta en la tabla usuario;busco el serial de la tabla
detallesasig pero sus caracteristicas ya estan guardadas en la tabla seriales que esta intersectada con la tabla equipos a traves
del codequipo
18
junio
20:59 Alex Barros Ha dicho:
No estoy seguro porque no he indagado en JOINS anidados, un da de estos lo probar, pero no tengo tiempo por ahora. Pero
sospecho que puedas necesitar parntesis, o otra sintaxis, para anidar JOINS.
Pero insisto, no estoy seguro.
20
junio
20:53 Damasco Dantesco Ha dicho:
Buenas tardes,
Tengo que hacer un trabajo en la uni y ya tengo la estructura de datos
como podran observar soy novato en mysql. y necesito generar un qry q explico a continuacion:
::::::: Tablas::::::::
|grados| |secciones|
*idgrado *idseccion
*grado *idgrado
*seccion
*cupos
*disponible
este sentecia >SELECT grado,seccion,cupos-matricula FROM grados LEFT OUTER JOIN secciones ON
grados.idgrado=secciones.idgrado;
Genera el siguiente resultado:
+-+++
| grado | seccion | cupos-matricula |
+-+++
| Prescolar | A | 2 |
| Prescolar | B | 15 |
| 1er Grado | A | 15 |
| 1er Grado | B | 15 |
Pero ahora quiero sumar el campo cupos-matricula
para que me genere algo asi:
+-+++
| grado |cupos-matricula |
+-+++
| Prescolar | 17|
| 1er Grado | 30|
Pueden ayudarme???
11
julio
14:40 el_shanky Ha dicho:
La verdad que de 10 lo tuyo!! muchas gracias x fin lo entend gracias a vos!!!
16
julio
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
9 de 27 24/07/2014 22:39
17:48 Liliet Ha dicho:
Muchas gracias por la traduccin y es verdad que es muy til esta explicacin grafica de los join en sql, llevaba media hora
buscando como obtener las filas de una tabla que no las tuviera la segunda y no encontraba la solucin. De vers est muy
bueno esto.
Para Damasco creo que le servira SELECT grado, sum(cupos-matricula) FROM grados LEFT OUTER JOIN secciones ON
grados.idgrado=secciones.idgrado GROUP BY grados.
16
julio
18:22 Alex Barros Ha dicho:
Muchas gracias Liliet por tu aportacin!
[PHP] Inner Join - psicofxp.com Ha dicho:
[...] Re: Inner Join jajaja tipo billiquen pasate por ste link [...]
11
agosto
5:17 El Zorro Ha dicho:
Muy buena la explicacin, por dems didctica.
Gracias por haberte tomado el tiempo de hacer esta explicacin tan completa del JOIN y todas sus variantes.
20
agosto
16:33 Yiller Ha dicho:
Que explicacion mas interesante,
necesito que me indiques algo:
Estoy programando en java un analizador sintactico de sentencias SQL. como mejora del software de la compaia.
y para ello necesito conocer las estructuras de las sentencias SELECT.
estoy trabajando con JAVA CC. pero necesito realizar un analizador de que verifique antes de pasarlo por el JAVACC
sintactico.
ahora.
necesito saber si tienes la estructura de los joins , la mas completa posible por ejemplo.
la del select es asi.
SELECT [ALL|DISTINCT]
{ * | expr_1 [AS c_alias_1] [, ...
[, expr_k [AS c_alias_k]]]}
FROM table_name_1 [t_alias_1]
[, ... [, table_name_n [t_alias_n]]]
[WHERE condition]
[GROUP BY name_of_attr_i
[,... [, name_of_attr_j]]
[HAVING condition]]
[{UNION [ALL] | INTERSECT | EXCEPT} SELECT ]
[ORDER BY name_of_attr_i [ASC|DESC]
[, ... [, name_of_attr_j [ASC|DESC]]]];
pero la de los joins no la encuentro, y necesito conocer la complejidad de los joins para realizar este analisis, pues en este
momento lo estoy realizando con ejemplos de sentencias con joins muy complejos.
de antemano muchas gracias.
20
agosto
17:05 Alex Barros Ha dicho:
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
10 de 27 24/07/2014 22:39
En la pgina de documentacin oficial de MySQL tienes una referencia a la sintaxis completa del Join:
http://dev.mysql.com/doc/refman/5.0/en/join.html (Ingls)
http://dev.mysql.com/doc/refman/5.0/es/join.html (Espaol)
Suerte con tu trabajo
22
agosto
20:13 Jaguar Ha dicho:
Ayuda por favor ya entendi el filtro de los join, el problema que tengo. tengo dos regillas es decir AxMSHFlexGrid1 y
AxMSHFlexGrid2, en el uno es tabla1 y el 2 tabla2 si me explico.
quiero filtrar en la regilla 2 unicamente los datos en comun de la regilla 1, es decir regilla 1 es padre y regilla 2 es hija.
en visual net y utilizo MYSQL, GRACIAS.
8
septiembre
18:52 yo Ha dicho:
jotillo
9
septiembre
0:14 Sebastian Ha dicho:
Hola, escribo esto porque me parece espectacular la explicacion muy facil de entender y aprate no quiero que muera un
cantante de folk jejeje
9
septiembre
2:02 Alex Barros Ha dicho:
Jajaja, muy bien Sebastian, has obrado como te dictaba el corazn.
24
septiembre
22:34 Armando Cruz Ha dicho:
Gracias por la info. Ha resultado de gran ayuda esta informacin grfica.
Pregunta, has documentado ms informacin sobre SQL de esta forma?
Saludos.
25
septiembre
15:23 Alex Barros Ha dicho:
Hola Armando. Si lees el comiezo del post, este artculo se trata de una strong>traduccin.
Si quieres ver todo el contenido que he escrito relacionado con MySQL.
1
octubre
16:21 varat Ha dicho:
grande la explicacion hace tiempo la habia revisado, pero no habia agradecido.
un aportazo.
30
octubre
18:55 Sergio Ha dicho:
La explicacion est muy buena. pero que pasa cuando tengo que incluir mas de 2 tablas?
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
11 de 27 24/07/2014 22:39
Pregunto pues en un listado quise totalizar de 3 bases. PRODUCTOS, ENTRADAS y SALIDAS y la sentencia LEFT JOIN me
haca una especia de permutacion en una de las bases: ejemplo, tena 2 salidas y 3 entradas y me daba 2 salidas y 6 entradas.
Como se entiende eso?
14
noviembre
13:33 Pablo Ha dicho:
Tengo 3 tablas con estructuras distinas (TAB_01, TAB_02 y TAB_03) y quiero pasar los datos a un mismo txt.
El txt debe quedar:
01;perez daniel; rioja;123;masculino (Datos de Tab_01)
01;diaz juan;alvarado 128;,asculino (Datos de Tab_01)
02;cordoba;capital,05;11 (Datos de Tab_02)
02;salta;capital,05;10 (Datos de Tab_02)
03;;;;;; (Datos de Tab_03)
03;;;;;; (Datos de Tab_03)
Los dos primeros dgitos indican a que tabla se hacer referencia.
27
noviembre
1:36 THE PUTXI PROJECT Ha dicho:
La explicacin est muy currada.
Muchas gracias
3
diciembre
6:35 Matias Ha dicho:
Gracias amigo por la traduccion!!!
4
diciembre
2:17 Daniel Ha dicho:
Es un excelente aporte para los que nos iniciamos en base de datos. Muchsimas gracias.
4
diciembre
2:43 DarkMelvinn Ha dicho:
Esta de a wewo el material que esta en esta pgina.. es mas comorencible que muchas que he visitado.. espero que suban mas
material de importancia para los que estamos programando con el uso de este materia.. oralex sombras.
15
diciembre
19:22 Cristian Ha dicho:
Excelente explicacin , muchas gracias me has aclarado muchas dudas.
15
diciembre
20:11 Cristian Ha dicho:
Amigo espero me puedas ayudar intento hacer algo as
SELECT * FROM TablaA
LEFT OUTER JOIN TablaB
ON TablaA.nombre =TablaB.nombre
LEFT OUTER JOIN TablaB
on TablaA.ayudante=tablaB.nombre
pero me manda el siguiente error Not unique table/alias: TablaB
Como le hago en este caso, necesito una consulta donde me muestres los datos iguales en la tabla A en los registros nombre y
en ayudante con los datos de TablaB y los que no estn que me los dejen nulos
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
12 de 27 24/07/2014 22:39
22
diciembre
15:54 Andrew Ha dicho:
Hola! Esta todo super bien explicado, pero yo aun tengo una duda Cmo hago para usar un INNER JOIN con la misma
tabla? tengo entendido que debo nombrar a alguna de las 2 tablas con un ALIAS pero no se como se hace sintacticamente.
Te paso el ejemplo: tengo una tabla empleados(numemp, nombre, edad, puesto, jefe y cuota) necesito mostrar los datos de los
empleados que poseen una cuota superior a la de su jefe y mostrar el numero de empleado, nombre y la cuota de los jefes. Los
jefes estan en la misma tabla y en el puesto se indica dir +el area
Tengo el siguiente codigo:
SELECT empleados.*, jefes.numemp AS num_jefe, jefes.nombre AS nombre_jefe, jefes.cuota AS cuota_jefe
FROM empleados INNER JOIN empleados jefes ON empleados.jefe =jefes.numemp
WHERE empleados.cuota >jefes.cuota;
pero Access me da el sigte error: no coincide el tipo en la expresion Me temo que es por el asunto del ALIAS que no se
aplicar.
Desde ya muchas gracias!
30
diciembre
1:33 jaime suarez Ha dicho:
hola, los ejemplos me han ilustrado un poco, pero tengo otras dudas, debo de aclarar que soy nuevo en sql y ojala pueda
explicarme:
tengo 2 tablas la primera con 2 columnas y la segunda tiene varias columnas
tabla1 tabla2
- -
clave descripcicon clave pago descuento total
1 zapatos negros 1 100 10 90
2 zapatos cafes 1 100 10 90
2 300 20 280
la idea es como le hago con un comando de sql el campo total de la tabla2 pero comparando la clave, es decir por cada clave la
suma debe ser diferente, en este caso la salida debe ser
clave descripcion total
- -
1 zapatos negros 180
2 zapatos cafes 280
2
enero
20:03 Luis Ha dicho:
Excelente artculo y traduccin acerca del uso de los join, muchas gracias por despejar mil dudas sobre estos
27
enero
18:01 allasina dario Ha dicho:
Barbaro la ejemplificacin, ahora te pregunto:
Tengo en dos bases de datos de postgres tablas a relacionar con joins
Como hago? utilizando consultas sql?
29
enero
13:55 ycci Ha dicho:
EXCELENTE LAS EXPLICACIONES, CLARAS Y CONCISAS. Gracias..!!!
11
febrero
22:00 MRF Ha dicho:
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
13 de 27 24/07/2014 22:39
como seria con tres tablas
24
febrero
0:35 Miguel Ha dicho:
Tengo la siguientes tablas
tabla_Padre, tabla_madre, y la tabla_hijos
Quiero crear uns sola tabla donde aparesca:
Nombre del padre, nombre de la madre y nombres de los hijos
26
febrero
15:00 ELJUSTICIERODIGITAL Ha dicho:
>Tengo la siguientes tablas
>tabla_Padre, tabla_madre, y la tabla_hijos
>
>Quiero crear uns sola tabla donde aparesca:
>Nombre del padre, nombre de la madre y nombres de los hijos
Pues buena suerte, payaso!
27
febrero
19:29 Lic. Julio Csar Ha dicho:
Trabajo con grandes bases de datos y hacer consultas me encanta, sobre todo para mostrarlas en la web, este es un ejemplo de
una consultita que muestro con php. espero les sea de gran ayuda.
$procesar_pedido =SELECT S.Sede, E.Especialidad,
Count(BA.AoEscolar) AS Total,
sum(BA.AoEstudio=1) as 1ro,
sum(BA.AoEstudio=2) as 2do,
sum(BA.AoEstudio=3) as 3ro,
sum(BA.AoEstudio=4) as 4to,
sum(BA.AoEstudio=5) as 5to
FROM Bajas_Acumuladas BA
INNER JOIN Facultad F ON BA.Facultad =F.No
INNER JOIN TipoCurso tp ON BA.TipoCurso =tp.No
INNER JOIN Sede S ON BA.Sede =S.No
INNER JOIN Especialidad E ON BA.Especialidad =E.No
WHERE F.Facultad =\".$list_facultad.\ AND tp.TipoCurso =\".$list_tipocurso.\ AND BA.Resultados=3
GROUP BY S.Sede, E.Especialidad;
21
marzo
5:48 Nero Ha dicho:
Waw, nunca vi un tema que suele dar tantas confusiones como este, TAN BIEN explicado! No veo ninguna fuente, asi que
asumo que es una creacin tuya, felicitaciones!
22
marzo
1:48 Alex Barros Ha dicho:
Los crditos y la fuente estn al comienzo del todo. Yo lo he traducido y adaptado, porque me pareca un recurso que mereca
mucho la pena.
Jeff Atwood es el autor original
26
marzo
0:04 abraham Ha dicho:
Extremada mente sencillo gracias por la info de que entendi entendi sin tantas vueltas al asunto grax saludos y suert
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
14 de 27 24/07/2014 22:39
2
abril
4:04 DoNoBaN Ha dicho:
Sobran ya comentarios pero no poda evitarlo, muy bueno el artculo es muy ilustrativo verlo as para sacarle gran partido a los
joins.
19
abril
2:04 JOSE Ha dicho:
tengo estas Tablas:
PRODUCTO STOCK
CODIGO DETALLE PR_COSTO PR_VENTA CODIGO BODEGA STOCK
A-1 EJEMPLO-1 3434 4500 A-1 1 100
A-2 EJEMPLO-2 232 3400 A-2 2 200
A-3 EJEMPLO3 122 4340 A-3 1 400
EN EL BROWSE QUE QUDE ASI POR LA BODEGA ASIGNADA
BODEGA ACTUAL 1
CODIGO DETALLE PR_COSTO PR_VENTA STOCK
A-1 EJEMPLO-1 3434 4500 100
A-2 EJEMPLO-2 232 3400 0
A-3 EJEMPLO3 122 4340 400
12
mayo
2:06 alfonso Ha dicho:
exelente expliacion y digo exelente por que no hay mejor calificativo, gracias por este tipo de articulo, los que estamos
iniciando en la programacion no es de gran utilidad.
12
mayo
2:08 alfonso Ha dicho:
perdon, quize decir nos es de gran utilidad
12
mayo
19:25 Alex Barros Ha dicho:
Jajaja no te preocupes, se entenda perfectamente.
Es un placer ayudar en lo que se puede!
17
mayo
1:34 alfonso Ha dicho:
Hola .
Soy principiante en programacin, Solicito tu valiosa ayuda., tengo dos tablas nombradas dos y tres en una bd escuela.
Dos Tres
Cedula cedula
Nombres espaol
Apellidos matemticas
Y ejecuto esto para buscar por medio de la cedula los datos
Por favor escriba su codigo:
-
y con esto aparecen los datos
<?php
mysql_connect(localhost,grey,gonzo);
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
15 de 27 24/07/2014 22:39
mysql_select_db(escuela);
$cedula=$_POST['cedula'];
$result =mysql_query(SELECT * FROM dos INNER JOIN tres ON dos.cedula=tres.cedula)
or die (mysql_error());
$row =mysql_fetch_array($result);
$id=$row['id'];
$cedula =$row['cedula'];
$nombre =$row['nombre'];
$apellidos =$row['apellidos'];
$espanol =$row['espanol'];
$matematicas =$row['matematicas'];
echo id: $id;
echo Cedula: $cedula;
echo Nombre: $nombre;
echo Apellidos: $apellidos;
echo espanol: $espanol;
echo matematicas: $matematicas;
?>
pero solamente me aparece el primero aun anotando otra cedula y pretendo que me salgo el alumno que contenga la cedula
correpondiente con sus datos.
Te agradecera me orientes ya que no logro conseguir lo que quiero, te agrdesco tu atencin y tiempo.
17
mayo
1:37 alfonso Ha dicho:
disculpa, este el form con que busco el campo coincidente cedula
Por favor escriba su codigo:
29
mayo
18:12 hugo Ha dicho:
ostias
1
junio
18:15 Raul Ha dicho:
Metodo muy innovador y sirve de mucho, solo me queda una pequea duda y es la diferencia entre un left join y unleft outer
join. Saludos
4
junio
17:07 ivan Ha dicho:
la mejor explicacion. Gracias
1
julio
1:37 alex venegas Ha dicho:
hola a todos, ando ofuscado con la informatica, he tratado de saber como se puede realizar esto,
tengo en na base de datos mysql, 02 tablas
la primera tabla se llama auth
la segunda tabla se llama ingreso
la idea es que cuando relleno bajo un formulario PHP, los campos de la tabla ingreso, Quiero de dos campos, se copien
automaticamente a la otra tabla..
ejemplo
TABLA auth
/////////////////////////////////////
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
16 de 27 24/07/2014 22:39
ALIA
PASS
/////////////////////////////////////
TABLA ingreso
/////////////////////////////////////
NOM
APE
ALIA
PASS
IBM
/////////////////////////////////////
LO CUAL QUIERO QUE AUTOMATICAMENTE, COPIE LA TABLA ingreso.ALIA A auth.ALIA.
MMMM COMO LO PUEDO HACER EN MYSQL ???
13
julio
16:59 Julio Csar Ha dicho:
Hola alex venegas:
Despus que hagas tu consulta utilizando tus INNER JOIN solamente debes actualizar tus tablas, ms o menos as.
//primera consulta de actualizacin que actualiza la tabla ingreso:
$sql =insert into ingreso(nom,ape,alia,pass,ibm) values (.$nom.,.$ape.,.$alia.,.$pass.,.$ibm);
//Segunda consulta de actualizacin que actualiza la tabla auth:
$sq2 =insert into auth(alia) values (.$alia.);
creo que es eso lo que deseas????????
Espero que te sirva.
7
agosto
18:01 laura Olivares Ha dicho:
Adoro esta explicacin es muy til, y yo al igual que muchos segn lo le buscamos unir ms de dos tablas al mismo tiempo; es
decir en una linea de comandos. Alguien por ah tiene la respuesta?
12
agosto
7:38 Alex Barros Ha dicho:
Creo que la clave est en usar parntesis pronto pondr alguna respuesta ms clara
24
agosto
12:36 Ivan Gonzlez Ha dicho:
Plas, plas, plas, plas (aplausos).
Me quito el sombrero, llevo toda la maana dando vueltas para encontrar justo algo asi, que saba que tena que existir.
Como se empea todo el mundo en contar las cosas como si fuera algo misterioso y complicado!!
Y por supuesto, no te voy a dar el tostn con mis dudas, que las tengo
3
septiembre
0:30 jorge a Ha dicho:
Oe que bacan esta pagina evita muchos y muchos librasos que se manejan hojas por gusto.
7
octubre
18:02 Edwin Q. Ha dicho:
tengo tabla categorias y tabla productos quiero listar en una sola consulta las cattegorias y productos de la siguiente manera
categoria1
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
17 de 27 24/07/2014 22:39
producto1
producto2
producto3
categoria1
producto4
producto5
todo en una sola consulta sin tener que hacer una consulta para categoria y otra para productos es posible eso?
7
octubre
18:14 Edwin Q. Ha dicho:
y otra pregunta en un select distinct(nombre) * fromtabla se puede agregar mas campos ? a la consulta es decir select
distinct(nombre), apellidos, edad fromtabla uhmmmmmmaver si alguien responde salu2, buen artculo
7
octubre
20:15 Victor Ha dicho:
Hola, sabes como hacer un full join en mysql?
19
octubre
17:45 Racumin Ha dicho:
Excelente la explicacin, ahora me gustara saber cmo borrar los registros de la tabla seleccionada es decir.
ejecuto esta sentencia:
1.SELECT * FROM TablaA
2.LEFT OUTER JOIN TablaB
3.ON TablaA.nombre =TablaB.nombre
4.WHERE TablaB.id IS NULL
de esta consulta quiero borrar todos los registros q sean null
19
octubre
20:31 Lic. Julio Csar Ha dicho:
Solo debes utilizar la clausula delete
DELETE * FROM TablaA
LEFT OUTER JOIN TablaB
ON TablaA.nombre =TablaB.nombre
WHERE TablaB.id IS NULL
19
octubre
21:08 Racumin Ha dicho:
Hola lic.julio no c mucho de esto pero creo q el delete no trabaja con el * lo hice y me arrojo lo siguiente
Servidor: mensaje 170, nivel 15, estado 1, lnea 1
Line 1: Incorrect syntax near *.
si lo hago sin el * muestra lo siguiente:
Servidor: mensaje 156, nivel 15, estado 1, lnea 1
Incorrect syntax near the keyword LEFT.
15
enero
22:21 Javier Ha dicho:
Menu uno a la ronda de dar las GRACIAS !!
20
enero
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
18 de 27 24/07/2014 22:39
1:18 Alex Barros Ha dicho:
@Javier. De nada, hombre! Te traigo la cuenta
24
enero
21:52 alberto Ha dicho:
Genial, as da gusto es buensimo. me has arreglado un programa en una lnea.
1
febrero
6:47 Squadron Ha dicho:
Se puede hacer algo similar a JOIN pero en vez de que una tablas, se una campos, pero que tambien se pueda guardar de
alguna forma fisicamente con algo como un INSERT ???
5
febrero
3:04 Alex Barros Ha dicho:
Lo siento, Squadron, pero no he entendido nada de nada.
Tendrs que explicarte mejor si quieres que te echemos una mano.
5
febrero
7:13 Squadron Ha dicho:
Bueno es simple, JOIN se supone que junta los datos de tablas en una sola de X formas
Y hay tambien una forma de copiar datos de una tabla a otra, en donde los datos se copian tal cual, que es el INSERT
SELECT en el cual en una sola peticion SQL seleccionas la informacion y luego la copias en una tabla aparte
Ahora usar la forma de INSERT SELECT no permite agarrar y por ejemplo hacer la union de 2 columnas en una sola
por ejemplo y luego guardar la informacion de esa nueva columna en la tabla de destino Ahora que lo veo bien, JOIN
tampoco une los datos internos sino que solo agrupa en una tabla las columnas de ambas tablas, o la informacion de esas
columnas
A lo que io me refiero con unir 2 columnas es por ejemplo, que si en una columna tengo nombres de personas y en otra de la
misma tabla tengo los apellidos, entonces por ejemplo, crear una nueva columna pero que dentro este el nombre y el apellido,
los 2 y que esos datos de la nueva columna se guarden en una tabla objetivo
Hay formas de hacerlo pero es en varios pasos y guardando la informacion en una variable como intermediario para pasar la
informacion nueva a la tabla objetivo, mi pregunta concreta seria si no hay una forma directa por SQL de hacer eso, sin
necesidad de algo intermedio como una variable.
Ejemplo de lo que podria querer hacer pero en una sola peticion SQL
Tengo una tabla usuarios con 2 columnas: Nombre y apellido, lo que quiero es que primero se junte la informacion de
nombre y apellido en una nueva columna nombrecompleto y que luego esa se guarde en una tabla aparte fisicamente.
todo eso en una sola peticion, algo como el INSERT SELECT en el cual en SELECT haces la seccion de la informacion
que necesitas y con INSERT la copias en la tabla objetivo, todo en una sola peticion SQL y sin intermediarios. Se puede ?
Espero haberme explicado mejor esta vez
5
febrero
18:57 Jos Cabo Ha dicho:
Hola Squadron. No recuerdo como hacer inserts basados en un SELECT. Quiero decir, lo que coges con el select lo guardar
con el insert.
Eso s se puede hacer, pero no recuerdo como. Solo te aconsejo que busques pero que si que se puede hacer.
Un saludo.
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
19 de 27 24/07/2014 22:39
7
febrero
3:13 Alex Barros Ha dicho:
Ya te he entendido.
Lo que necesitas no tiene que ver con JOIN, sin con conocer las funciones que te brinda Mysql
Lo que buscas es algo como esto:
INSERT INTO `nueva_tabla` SELECT CONCAT(`nombre`, ,`apellido`) FROM `antigua_tabla` WHERE 1
La clave est en concatenar dos campos en slo uno.
24
febrero
21:01 cesar calero Ha dicho:
buenas tardes
me podrian ayudar con las siguientes consultas
cuantas personas han tenido mas de un cargo en la compaia
que personas acomulan salario y comision de sus empleados superiores a los salarios promedios de los jefes de todos los
departamentos
4
marzo
21:51 Ruben Ha dicho:
Alex Barros, te felicito por el tutorial. Muy claro y conciso para uno que recien empieza en el
mundo de SQL. Gracias Maestro.
27
marzo
6:56 Oliver Ha dicho:
Gracias por la explicacin. Me acaba de solucionar un problema que vena arrastrando de hace tiempo.
Bendito sea RIGHT OUTER JOIN y su inclusin de nulls!!!
14
abril
3:39 Kevin Ha dicho:
Hola Alex Barros, Tengo una duda con respecto al join, estoy haciendo un programa en PHP que consulta varias veces una
base de datos mysql, mi pregunta es
Que es mejor en cuanto a rendimiento de la database poniendose en el caso que cada tabla a lo menos contenga 40000
registros?
a)hacer varias consultas simulando un JOIN. obteniendo un dato y luego consultar el otro, y luego el siguiente, hasta obtener
todos los datos. o
b)hacer un join y obtener todos los datos de una vez.
PD: muy buena a explicacin del join.
Saludos!
18
abril
21:13 Alex Barros Ha dicho:
@Kevin: Yo dira que la segunda opcin de extraerlos todos con un slo Join, pero lo mejor que puedes hacer es probar, y
experimentar.
Explicacin visual de los SQL Join Unir tablas con SQL Blog Sysgo Ha dicho:
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
20 de 27 24/07/2014 22:39
[...] clic aqu para ver el articulo completo. Publicar [...]
3
agosto
23:18 Wilbert Romero Ha dicho:
Muy buenos los tutos que estas dejando, quisiera saber si me pudieras ayudar a unir multiples tablas pero solo mostrando
algunos campos especificados, hay sentencias que has puesto
en el tuto pero solo son para aislar u omitir
campos.gracias
4
agosto
19:42 paola Ha dicho:
hola deseo saber como puedo utilizar el join para sumar dos campos diferentes de la misma tabla
por ejemplo
negativos, positivos
select sum(positvos)from mitable, inner join
select sum (negativos) from mitbale
pero amrka error gracias.
9
agosto
23:17 Alex Barros Ha dicho:
Hola paola.
Siento decirte que JOIN no se utiliza para sumar. Puedes hacer sumas con los operadores matematicos normales (+* /)
En tu caso sera SELECT SUM(positivos) +SUM(negativos) FROM mitable
Te he entendido bien?
9
agosto
23:21 Alex Barros Ha dicho:
Hola Wilbert Romero
La parte de la sentencia SQL en la que seleccionas campos es al principio de todo.
En los ejemplos he puesto SELECT * que significa que se seleccionen todos los campos, pero en su lugar puedes escribir
SELECT campo1, campo2
10
agosto
21:42 Sandra Ha dicho:
Hola porfavor quisiera obtener datos de diferentes tablas de tabla Sig_areas(obtener la columna cod_area), de la tabla
articulos(obtener las columnas id_articulo, descripcion, antiguo_codigo), de la tabla stocks(abtener la columna stock_actual),
de la tabla materiales(obtener la columna UM) todo que reporte por el id_area dado que son 33 areas.
23
agosto
21:29 Lic. Julio Csar Ha dicho:
Hola Sandra, es algo como esto lo que necesitas, fijate que utilizo alias para identificar las tablas.
SELECT sa.cod_area, ar.id_articulo, ar.descripcion, ar.antiguo_codigo, st.stock_actual, ma.um
FROM Sig_areas sa, articulos ar, stocks st, materiales ma
Inner Join articulos ar on sa.articulo =ar.id_area
Inner Join
Inner Join
WHERE
Group by
Order by
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
21 de 27 24/07/2014 22:39
si no entiendes, vuelve a preguntar no tengas pena.
15
septiembre
17:38 Marcos Garca Ha dicho:
Te acaban de copiar el tutorial
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=joinsgraficos
11
octubre
20:30 ESFA Ha dicho:
Solo se pudo decir Gracias !!
2
noviembre
21:21 Rene Ha dicho:
Hola, Por favor, alguien que me ayude.
Estoy trabajando con una Base de datos en PostgreSQL, pero ahora necesito incorporarle otra BD de un Foro, tengo el Scrip
de esta BD del foro y necesito hacer las 2 una sola, y sin perder los datos que tengo ya en la otra.
4
noviembre
1:19 Alex G Ha dicho:
Que buena aportacin amigo Alex, me ayudo mucho, gracias
8
noviembre
2:49 galo Ha dicho:
hola quiero unir 4 tablas para hacer un reporte como lo puedo hacer.Las tablas son laboratorio1,laboratorio2,laboratorio3 y
laboratorio4 si me pueden ayudar
8
noviembre
2:50 galo Ha dicho:
estoy trabajando en dreamweaver php y mysql
8
noviembre
19:12 jcesar Ha dicho:
Hola galo.
Debes ser ms especfico en tus preguntas.
Por ejemplo, si quieres unir la estructura de tus 4 tablas o si lo que buscas es obtener datos de diferentes tablas.
Si es el ltimo caso mira el comentario que le hice a Sandra. No dudes en preguntar, aqui te podemos ayudar.
19
noviembre
12:04 SCastillo Ha dicho:
Hola estoy intentado hacer una consulta a una base de datos mysql pero no obtengo los resultados que deseo, la consulta es la
siguiente:
SELECT
PILOTOS.NOMBRE as PILOTO,
CIRCUITOS.NOMBRE as CIRCUITO,
Min(VUELTAS.TIEMPO) as TIEMPO,
VUELTAS.S1 as BESTS1,
VUELTAS.S2 as BESTS2,
VUELTAS.S3 as BESTS3,
Count(VUELTAS.NUMERO) AS VUELTAS,
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
22 de 27 24/07/2014 22:39
(Count(VUELTAS.NUMERO))*(CIRCUITOS.LONGITUD/1000) AS KM
FROM
VUELTAS
Inner Join RELACION ON VUELTAS.RELACION =RELACION.ID
Inner Join PILOTOS ON RELACION.PILOTO =PILOTOS.ID
Inner Join `LOGS` ON VUELTAS.FECHA =`LOGS`.ID
Inner Join CIRCUITOS ON `LOGS`.CIRCUITO =CIRCUITOS.ID
Inner Join CLASES ON CLASES.ID =RELACION.CARCLASS
Inner Join VEHICULOS ON VEHICULOS.ID =RELACION.CARTYPE
WHERE
VUELTAS.TIEMPO > 0 AND
VUELTAS.S1 > 0 AND
VUELTAS.S2 > 0 AND
VUELTAS.S3 > 0
GROUP BY
CIRCUITOS.NOMBRE,
PILOTOS.NOMBRE
ORDER BY
CIRCUITOS.NOMBRE ASC,
min(VUELTAS.TIEMPO) ASC
El problema que no me muestra vueltas.s1 vueltas.s2 vueltas.s3 de la misma fila del min(vueltas.tiempo) creo que sigue
recorriendo el puntero hasta el final, estas 4 columnas estan en la misma tabla.
Alguna solucion?
23
noviembre
19:47 Carlos Enrique Ha dicho:
Esta muy bueno el aporte..!!
30
noviembre
17:36 Marggory Ha dicho:
Interesante el aporte, sigan asi muchachos que de vez en cuando me doy una vuelta por aqui..!!
Besos,
Atte.
Maggy
30
noviembre
17:38 Francis Ravello Ha dicho:
Ta chevereee la paginaa!!
30
noviembre
17:39 Francis Ravello Ha dicho:
Saludos a todos!!
30
diciembre
0:35 Dirtyboss Ha dicho:
Nunca habia entendido bien los inner y con esto me qued muchisimo mas claro tengo algunas dudas, pero primero voy a
practicar y luego regreso con preguntas
Muy bien traducido
Gracias
18
enero
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
23 de 27 24/07/2014 22:39
2:37 Elizabeth Urbano Ha dicho:
ESTAS ERRADO COMPAERO
No todo lo que sale en un libro es CORRECTO.
DEntro de tu explicacion (que supongo no es error tuyo sino del autor del libro) tienen 6 errores en tan solo 5 ejemplos.
PILAS MUCHACHOS: mas capacidad de analicis..
Que tiempo mas perdido
mala traduccion mala explicacion POBRE INTERPRETACION
18
enero
17:48 Alex Barros Ha dicho:
Elisabeth, te agradecera que sacaras a relucir esos errores que mencionas, y demuestres TU capacidad de anlisis, que hasta
este momento es cero.
20
enero
23:58 Andres Ha dicho:
Buenas tardes quisiera saber donde puedo encontrar cursos de sql y java.
Muchas gracias
26
enero
19:09 Yiller Ha dicho:
Requeria disear una sentencia OQL en JPA
y no recordaba bien como traer la informacion como lo hace
LEFT OUTER JOIN con un campo null de nuevo
que buen ejemplo.
Elizabeth que lastima que no sabes nada de SQL
porque el error lo tienes TU.
Inner join, left join, right join e dems familia explicados de forma grfica Carlos Rodriguez Ha dicho:
[...] en castellano: boozox.net Enlace orixinal: [...]
3
febrero
23:01 Ing. Victor Ha dicho:
Desde hacia tiempo estaba tratando de entender mucho mejor los Join, tu pagina es una gran ayuda.
pero aun tengo una duda, como hacer para contar la cantidad de registros que se repiten de una union entre una fecha
determinada .
ejemplo:
Tabla:
Ficha

Numero_ficha (int)
fecha_ficha (date)
tabla:
Semanas:

codigo (int)
fecha_inicio (date)
fecha_fin (date)
logre filtrar la tabla asi:
select b.codigo, count(b.codigo) from semanas b, ficha a where a.fecha_ficha between (b.fecha_inicio and b.fecha_fin) group
by b.codigo
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
24 de 27 24/07/2014 22:39
solo puedo hacerlo general y no se como personalizar las fechas de fichas
22
febrero
20:31 david Ha dicho:
hola mi duda es la siguiente mas no acerca de este tema hice dinamicamente 3 consultas a diferentes tablas y entre cad una de
ellas use un union all pero quiero saber como separar los resultados de una tabla y de otra ya que no quiero que se revuelvan
ojala me puedan ayudar ya que lo necesito para ayer gracias a todos
22
febrero
20:33 david Ha dicho:
select b.codigo, count(b.codigo) from semanas b, ficha a where a.fecha_ficha between (b.fecha_inicio=01/01/2010 and
b.fecha_fin=01/01/2011) group by b.codigo
me imagino que es algo asi lo que quieres hacer ing. victor?
18
junio
18:08 Hora Loca Ha dicho:
Esta chida la info, gracias.
29
junio
20:45 eduardo Ha dicho:
necesito saber como comparar dos campos de dos tablas distintas usando visual basic 6.0 las dos tablas son de tipo int si me
pudieran ayudar se los agradecere
29
junio
20:50 eduardo Ha dicho:
corrijo no son las dos tablas sino los dos campos a comparar sorry
3
julio
11:06 hora loca Ha dicho:
Estimados amigos, gracias por el aporte, me ayudan bastantes, saludos..!!
5
septiembre
17:16 David Arteaga Ha dicho:
Buen dia, pues la verdad es que yo no se mucho sql solo hago mis pininos en el trabajo inventando cosas nuevas que puedan
ayudar.
El punto esta en que hice una BD de inventario de equipo de computo en Open Ofice, por mala aportacion un compaero me
dijo que hisiera una tabla por cada periferico es decir una tabla de monitores, una tabla de cpu, una tabla de teclados, etc.
Pero ahora yo quiero hacer los reportes y me salio un pequipo gran problema, que si hago mi consulta se multiplican los
resultados.
Esta es mi consulta espero me puedan ayudar
select dbcpu.serie, dbcpu.suc_num, dbmonitores.serie, dbmonitores.suc_num from dbcpu, dbmonitores
where dbcpu.suc_num=dbmonitores.suc_num
and dbcpu.suc_num=458
Lo que quiero lograr es saber que equipo tengo en cada una de las sucursales pero al hacer la consulta se me multiplican cada
serie de monitor con cada serie de cpu
S.O.S.
11
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
25 de 27 24/07/2014 22:39
septiembre
10:59 YAcosta Ha dicho:
Saludos Alex, se que el post tiene varios aos y mira que recien lo encontr, me hubiera ahorrado tiempo si lo encontraba
porque antes no captaba bien el tema Inner Join y demas. Buen hilo, seguire tu blog. Saludos
25
septiembre
5:52 jose Ha dicho:
mil gracias con estos graficos es tan sencillo.excelente,me ha servido muchisimo
28
septiembre
20:31 Irina Ha dicho:
muchas gracias!! me saco muchas dudas =)
28
octubre
17:38 Marcelis Ha dicho:
gracias, se pueden conectar 20 tablas una a una?
Nombre
E-mail
Web
Notify me of followup comments via e-mail

Search:
Bicivalencia Localiza las estaciones de Valenbisi, servicio pblico de bicicletas en Valencia,
Espaa. Ver ms Gpsia Descubre y comparte rutas por todo el mundo, tomadas con GPS. Ver ms Imaset Edita tus imgenes
de Wordpress con este sencillo plugin. Ver ms
Mi msica es tuya!
Experimentos BSO TMEC
Como la vida - Hanna
Crash! - Propellerheads
Broken Dreams (acstica) - Basement Jaxx
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
26 de 27 24/07/2014 22:39
Digo yo que...
sgueme!
Mis fotos de Flickr
www.flickr.com
Entradas recientes
20 Consejos para Mejorar tu MySQL que quizs no conocas
API de Valenbisi (Servicio de JCDeacaux)
Defensa a ultranza del Software Libre
Mltiples join y solucin al encadenar LEFT JOINS
5 mximas
Por qu cambio el cdigo por la cmara de vdeo?
Proyectos on progress
Ir a la Valencia Pillow Fight
Script PHP para explorar archivos y directorios recursivamente
Retomando Gpsia con fuerza
Meta:
Acceder
RSS
RSS de los comentarios
Respeta el copyleft
2014 Boozox Wordpress theme by Arcsin
,
Boozox Explicacin visual de los SQL J oin Unir tablas con SQL http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...
27 de 27 24/07/2014 22:39

You might also like