Explicación visual de los SQL Join – Unir tablas con SQL

Embed Size (px)

Citation preview

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

Boozox Explicacin visual de los SQL Join Unir tablas con SQL12 de Octubre del 2007

coge la informacin y corre

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 JOIN TablaB ON TablaA.nombre = TablaB.nombre

1 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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 JOIN 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 JOIN 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 JOIN 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 JOIN TablaB ON TablaA.nombre = TablaB.nombre WHERE TablaA.id IS NULL OR TablaB.id IS NULL

2 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

Tambin hay un cross join, el cul no puede ser expresado con un diagrama de Venn:. . SELECT * FROM TablaA CROSS JOIN 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 | Aunque la mona se vista de seda, siempre escribe su comentario

Hay 141 comentarios, pero nos falta el tuyo14 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 - Explicaci n visual de los SQL Join - Unir tablas con SQL Ha dicho: ol.Articulo completo: http://boozox.net

[...] of SQL Joins. Tanto es as que he decidido traducir este art culo al espa /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:

3 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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 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

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.

4 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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*from tabla 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:

5 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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:

6 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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

7 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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 !!!!!! 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 DDD espero que me sirva en el examen!

8 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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

9 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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 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: pasate por ste link [...]

10 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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?

11 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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

12 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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:

13 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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

14 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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 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 /////////////////////////////////////

16 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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

17 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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) * from tabla se puede agregar mas campos ? a la consulta es decir select distinct(nombre), apellidos, edad from tabla uhmmmmmm aver 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

18 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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.

19 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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:

20 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

[...] 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

21 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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,

22 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

(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

23 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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

24 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

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? Nombre E-mail Web

Notify me of followup comments via e-mail

Buscar:

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

Digo yo que...Vaya, me ruborizo. Muchas gracias! Lstima no tener tiempo para todo lo que me gusta... espero reavivarlo algn da ;-)about 9 hours ago

25 de 26

31/03/2011 11:49

Boozox Explicacin visual de los SQL Join Unir tablas con SQL

http://boozox.net/mysql/explicacion-visual-de-los-sql-join-unir-tablas-...

@valenbisi_es @Carparna @Blackberry @osus bicivalencia.com no acaba de funcionar en BB. Estoy tratando de solucionarlo. about 19 hours ago Hoy he soado que pinginos zombis atacaban nuestra casa de veraneo #avecessueocosas #enserio 2 days ago Me ha sorprendido que ms del 40% de las visitas a Bicivalencia son directas (ni por buscador, ni por enlace en otra web) 2 days ago sgueme!

Mis fotos de Flickr

www.flickr.com

Entradas RecientesNO al cierre de Webs 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

Meta:Iniciar sesin RSS RSS de los comentarios

Respeta el copyleft 2011 Boozox Wordpress theme by Arcsin ,

26 de 26

31/03/2011 11:49