<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LuAuF &#187; SQL</title>
	<atom:link href="http://luauf.com/category/bases-de-datos/sql-bases-de-datos/feed/" rel="self" type="application/rss+xml" />
	<link>http://luauf.com</link>
	<description></description>
	<lastBuildDate>Fri, 27 Jan 2012 01:44:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Exportar una base de datos MDB a SQL (mysql, oracle, sybase, etc.)</title>
		<link>http://luauf.com/2011/09/12/exportar-una-base-de-datos-mdb-a-sql-mysql-oracle-sybase-etc/</link>
		<comments>http://luauf.com/2011/09/12/exportar-una-base-de-datos-mdb-a-sql-mysql-oracle-sybase-etc/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 02:00:38 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[exportar]]></category>
		<category><![CDATA[mdb]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Postgres]]></category>
		<category><![CDATA[sybase]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1193</guid>
		<description><![CDATA[Recuerdo instantes de mi pasado donde he tenido la necesidad de llevar Bases de Datos MDB, Microsoft Access, a bases de datos MySQL. Recuerdo por entonces MySQL Migration Toolkit, una herramienta para realizar esta carga requerida. No obstante no era de mi agrado, y lo que buscaba por entonces era simplemente obtener un script SQL [...]]]></description>
			<content:encoded><![CDATA[<p>Recuerdo instantes de mi pasado donde he tenido la necesidad de llevar Bases de Datos MDB, Microsoft Access, a bases de datos MySQL.</p>
<p>Recuerdo por entonces MySQL Migration Toolkit, una herramienta para realizar esta carga requerida. No obstante no era de mi agrado, y lo que buscaba por entonces era simplemente obtener un script SQL con el código DDL y DML necesario para el CREATE de los objetos de la base de datos y los INSERTs de los datos. A esa utilidad, hoy Linuxeando, le encontré el nombre: <strong><a href="http://mdbtools.sourceforge.net/">mdbtools</a></strong>.</p>
<p>MDBtools es un suite de herramientas (mdb-array mdb-header mdb-parsecsv mdb-schema mdb-tables mdb-export mdb-hexdump mdb-prop mdb-sql mdb-ver) que permiten, entre sus funciones, obtener  esquema de una base de datos y exportar en SQL los datos de la misma.</p>
<p><span id="more-1193"></span>Veamos un ejemplo básico y sencillo que consiste en:</p>
<ul>
<li>Exportar el diseño de la vieja y querida Neptuno.mdb (conocida base de datos distribuida como ejemplo con Microsoft Access) en formato de sentencias de definición de datos SQL.</li>
<li>Obtener el nombre de las tablas de la misma base de datos</li>
<li>Exportar los datos de cada tabla bajo la forma de INSERTs SQL.</li>
</ul>
<div class="syntax_hilite">
<div id="code-2">
<div class="code">$ sudo aptitude install mdbtools</p>
<p>$ mdb-schema Neptuno.<span style="">mdb</span> mysql&amp;gt; Neptuno_schema.<span style="">sql</span> #donde mysql se puede reemplazar por otro dialecto: oracle, sybase o postgres.</p>
<p>$ for tabla in `cat Neptuno_tables.<span style="">txt</span>`; do mdb-export -R \; -I Neptuno.<span style="">mdb</span> $<span style="color:#006600; font-weight:bold;">&#123;</span>tabla<span style="color:#006600; font-weight:bold;">&#125;</span>; done&amp;gt; Neptuno_data.<span style="">sql</span></p>
<p>$ rm Neptuno_tables.<span style="">txt</span></div>
</div>
</div>
<p></p>
<p>Fácil, sencillo y util... lástima que en mi caso llega tarde, no obstante en conocimiento perdura y nadie puede asegurarme que no me encuentre alguna vieja MDB en mi camino.</p>
<p>Vía: <a href="http://www.wikipeando.com/index.php/archives/481">Wikipeando</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2011/09/12/exportar-una-base-de-datos-mdb-a-sql-mysql-oracle-sybase-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Tracear&#8221; artesanalmente consultas SQL</title>
		<link>http://luauf.com/2009/06/02/tracear-artesanalmente-consultas-sql/</link>
		<comments>http://luauf.com/2009/06/02/tracear-artesanalmente-consultas-sql/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 08:00:20 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Consultas]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[Procesos]]></category>
		<category><![CDATA[Trace]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=1025</guid>
		<description><![CDATA[Lo que leeremos ahora es una solución bastante artesanal para tracear consultas SQL. Cuando leia mis feeds y leí el título de Cómo “tracear” consultas SQL entré inmediatamente debido a que desconocía un método para realizar esta tarea. Lo que suele suceder es que aveces queremos resolver los problemas de una forma prolija y elegante [...]]]></description>
			<content:encoded><![CDATA[<p>Lo que leeremos ahora es una solución bastante artesanal para tracear consultas SQL. Cuando leia mis feeds y leí el título de <a href="http://dmnet.bitacoras.com/archivos/programacion/como-tracear-consultas-sql.php">Cómo “tracear” consultas SQL</a> entré inmediatamente debido a que desconocía un método para realizar esta tarea. Lo que suele suceder es que aveces queremos resolver los problemas de una forma prolija y elegante y lo cierto es que la solución puede ser bastante más rudimentaria pero muy ingeniosa.</p>
<p>Muchas veces suele ser tarea común la de consultar en MySQL el <a href="http://luauf.com/2008/05/22/monitorear-consultas-en-mysql/">slow query log</a> o verificar en tiempo real con un<a href="http://luauf.com/2009/01/21/15-usos-practicos-de-mysqladmin/"> show processlist</a> cual es esa consulta que está volviendo lento al servidor. Conocida la consulta, ¿como se cual es la aplicación que utiliza dicha consulta?. A menos que conozcamos muy bien nuestro sistema, debemos empezar a buscar en nuestros archivos y hacer algunos que otros <a href="http://luauf.com/2009/05/04/varios-ejemplos-de-uso-del-comando-grep/">grep</a> recursivos hasta encontrar con la aplicación culpable de esa consulta lenta.</p>
<p><span id="more-1025"></span>Esta solución nos evita perder tiempo buscando el fuente que ejecuta la consulta y es tan sencilla como... <strong>utilizar comentarios en nuestra consulta</strong>. Si! así de fácil y básico como eso, sin dudas muy artesanal, pero efectivo <img src='http://luauf.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="syntax_hilite">
<div id="sql-4">
<div class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #808080; font-style: italic;">/* FILE: procesaDB.c, FUNCTION: getBultos(), LINE 138 */</span> campo1, campo2 <span style="color: #993333; font-weight: bold;">FROM</span> tabla</div>
</div>
</div>
<p></p>
<p>Vía: <a href="http://dmnet.bitacoras.com/archivos/programacion/como-tracear-consultas-sql.php">Delirios de un Informático</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2009/06/02/tracear-artesanalmente-consultas-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lineamientos generales para la codificación SQL</title>
		<link>http://luauf.com/2008/12/13/lineamientos-generales-para-la-codificacion-sql/</link>
		<comments>http://luauf.com/2008/12/13/lineamientos-generales-para-la-codificacion-sql/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 03:00:52 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=737</guid>
		<description><![CDATA[Pinal Dave, MVP (Most Valuable Professional) en SQL Server, publicó hace un tiempo una guía de "estándares" para la codificación en SQL Server (Parte 1, Parte 2), aunque la mayoría de los lineamientos pueden ser aplicados tranquilamente en cualquier código SQL. A pesar que los estándares suelen limitarnos mucho y darnos la sensación de perder [...]]]></description>
			<content:encoded><![CDATA[<p>Pinal Dave, MVP (Most Valuable Professional) en <strong>SQL Server,</strong> publicó hace un tiempo una guía de "estándares" para la<strong> codificación</strong> en SQL Server (<a href="http://blog.sqlauthority.com/2008/09/23/sql-server-coding-standards-guidelines-part-1/ " target="_blank">Parte 1</a>, <a href="http://blog.sqlauthority.com/2008/09/24/sql-server-coding-standards-guidelines-part-2/ " target="_blank">Parte 2</a>), aunque la mayoría de los lineamientos pueden ser aplicados tranquilamente en cualquier <strong>código SQL</strong>.</p>
<p>A pesar que los estándares suelen limitarnos mucho y darnos la sensación de perder creatividad en algunos aspectos, son mucho más preferibles que a no tenerlos.</p>
<p>Publico abajo algunas de las reglas mencionadas en el blog de <a href="http://blog.sqlauthority.com/" target="_blank">sqlauthority</a> traducidas al español y aplicables a <strong>SQL</strong> en general (no enfocado directamente en TSQL). <span id="more-737"></span></p>
<ul>
<li>Utilizar la <strong>notación</strong> de "Pascal" para objetos como tablas, vistas y stored procedures. Es decir, escribir palabras todas juntas separadas por mayusculas. Además, no está mal terminar con "s". Por ejemplo:</li>
</ul>
<blockquote><p>UserDetails<br />
Emails</p></blockquote>
<ul>
<li>Utiliza un <strong>prefijo</strong> para todo gran grupo de tablas. Por ejemplo:</li>
</ul>
<blockquote><p>Page_UserDetails<br />
Page_Emails</p></blockquote>
<ul>
<li>Utiliza las siguientes convenciones para nombras stored procedures, triggers, indices, foreign keys y primary keys.</li>
</ul>
<blockquote>
<ul>
<li><strong> Stored procedures:</strong> sp&lt;Nombre de Aplicacion&gt;[_&lt;grupo&gt;_]&lt;tipo de accion&gt;&lt;nombre de tabla&gt;. Donde acción es un verbo como Get, Delete, Update, Write, Archive, etc. Por ejemplo:  spUserAdministration_Page_UpdateEmails</li>
<li><strong>Triggers</strong>: TR_&lt;nombre de tabla&gt;_&lt;action&gt;&lt;description&gt;. Por ejemplo:  TR_Emails_LogEmailChanges</li>
<li><strong>Indices:</strong> IX_&lt;nombre de tabla&gt;_&lt;columnas separadas por _&gt;. Por ejemplo:  IX_UserDetails_UserID</li>
<li><strong>Claves primarias</strong>: PK_&lt;nombre de tabla&gt;. Por ejemplo: PK_UserDetails</li>
<li><strong>Claves externas</strong>: FK_&lt;tabla 1&gt;_&lt;tabla_2&gt;</li>
</ul>
</blockquote>
<ul>
<li>Evita el uso de<strong> SELECT *</strong>. Usa nombres de columnas a continuación de la sentencia SELECT.</li>
</ul>
<ul>
<li> <strong>Indenta</strong> las consultas SQL. Por ejemplo:</li>
</ul>
<blockquote><p>SELECT Username, Password<br />
FROM UserDetails ud<br />
INNER JOIN Employee e ON e.EmpID = ud.UserID<br />
<em> en vez de</em>:<br />
SELECT Username, Password FROM UserDetails ud INNER JOIN Employee e ON e.EmpID = ud.UserID</p></blockquote>
<ul>
<li>Escribe las sentencias SQL en <strong>mayúsculas</strong>.</li>
<li>Intenta utilizar la<strong> primary key</strong> en las condiciones de los <strong>UPDATEs</strong> o <strong>DELETEs</strong>.</li>
<li>Crea los <strong>stored procedures</strong> en la<strong> misma</strong> base de datos donde existe la tabla.</li>
<li>En vez de utilizar un <strong>LOOP</strong> para insertar datos de una tabla A a una tabla B, intenta usar INSERT INTO... SELECT...</li>
<li>Evita utilizar <strong>espacios</strong> o <strong>palabras reservadas </strong>para el nombre de los objetos de la base de datos.</li>
<li>Intenta escribir <strong>comentarios</strong> en todo stored procedure, trigger o batch sql.</li>
<li>Evita utilizar <strong>wildcards</strong> al principio de una palabra en una búsqueda con <strong>LIKE</strong>.</li>
<li>Cuando utilices<strong> JOINs</strong>, siempre utiliza el nombre de la tabla delante del nombre de la comlumna. Adicionalmente, se puede agregar nombre del servidor, nombre de la base de datos y/o propietario.</li>
<li>Cuando tienes condiciones con varias ramas, utilizar <strong>paréntesis</strong> puede mejorar la lectura de expresiones complicadas.</li>
<li>Utiliza -- para <strong>comentar</strong> una línea simple y /* */ para marcar una sección se código <strong>comentada</strong>.</li>
<li>Analiza todas las consultas y <strong>optimizalas.</strong> Por ejemplo: SHOWPLAN_ALL en TSQL o <a href="http://luauf.com/tag/explain/"><strong>EXPLAIN</strong></a> en MySQL.</li>
<li>Utiliza<strong> vistas</strong> para datos frecuentemente requeridos, con JOINs y/o cáculos complicados.</li>
<li>Evita guarda datos <strong>binarios</strong> o imágenes en la base de datos. En vez de eso, es preferible guardar el <strong>path</strong> de donde se almacena la imagen o el archivo en el servidor.</li>
<li>Utiliza siempre la <strong>lista de columnas</strong> de un INSERT. Esto previene problemas cuando cambie la estructura de la tabla.</li>
<li>Realiza todas las tareas de chequeos de integridad y validaciones de datos por medio de <strong>constraints</strong> en vez de triggers.</li>
<li>No utilices nombres de columnas en la cláusula <strong>ORDER BY</strong>, puesto esto puede reducir la legibilidad de la consulta SQL. Por ejemplo:</li>
</ul>
<blockquote><p>SELECT UserID, UserName, Password<br />
FROM UserDetails<br />
ORDER BY UserName<br />
en vez de<br />
SELECT UserID, UserName, Password<br />
FROM UserDetails<br />
ORDER BY 2</p></blockquote>
<p>Puedes diferir de algunas de las reglas antes mencionadas, pero el objetivo no es imponer reglas sino simplemente tener un marco sobre el cual trabajar de manera prolija y ordenada.  De hecho, puedes armar tu propio estándar de codificación para tu grupo de trabajo.</p>
<p>Via: <a href="http://ecuador.latindevelopers.net/blogs/edgarsanchez/archive/2008/10/02/gu-237-as-y-est-225-ndares-de-codificaci-243-n-para-sql.aspx" target="_blank">ecuador.latindevelopers.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/12/13/lineamientos-generales-para-la-codificacion-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usar SQL para generar SQL</title>
		<link>http://luauf.com/2008/06/11/usar-sql-para-generar-sql/</link>
		<comments>http://luauf.com/2008/06/11/usar-sql-para-generar-sql/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 00:49:22 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=410</guid>
		<description><![CDATA[El principio para la creación de cadenas SQL a partir de SQL consiste, básicamente, en recorrer la metadata (information schema) de una base de datos y armar strings sql a partir de la concatenación strings constantes y del nombre de los objetos (nombre de tablas, nombre de campos, nombre de constraints, etc.) de la base [...]]]></description>
			<content:encoded><![CDATA[<p>El principio para la creación de cadenas SQL a partir de SQL consiste, básicamente, en recorrer la metadata (information schema) de una base de datos y armar strings sql a partir de la concatenación strings constantes y del nombre de los objetos (nombre de tablas, nombre de campos, nombre de constraints, etc.) de la base de datos.</p>
<p>Las consultas SQL utilizadas pueden variar en cuanto a los nombres de los campos, tablas involucradas u objetos del sistema de acuerdo al sistema de gestión de base de datos utilizado, pero el funcionamiento es el mismo. El único esfuerzo extra a realizar será investigar el diccionario de datos de cada DBMS.</p>
<p>Los ejemplos mencionados en el artículo original, correspoden a consultas de Oracle, en nuestro caso, veremos ejemplos similares para una base de datos MySQL:</p>
<p><span id="more-410"></span></p>
<p><code></p>
<div class="syntax_hilite">
<div id="mysql-6">
<div class="mysql"><span style="color: #808080; font-style: italic;">-- Cantidad de filas por tablas</span><br />
<span style="color: #993333; font-weight: bold;">USE</span> information_schema;<br />
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">CONCAT</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SELECT count(*) FROM '</span> , table_schema , <span style="color: #ff0000;">'.'</span> , table_name , <span style="color: #ff0000;">';'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">FROM</span> tables;</p>
<p>
<span style="color: #808080; font-style: italic;">-- Quitar las foreign key de las tablas</span><br />
<span style="color: #993333; font-weight: bold;">USE</span> information_schema;<br />
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">CONCAT</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'ALTER TABLE '</span> , table_name , <span style="color: #ff0000;">' DROP FOREIGN KEY '</span> , constraint_name , <span style="color: #ff0000;">';'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">FROM</span> table_constraints <span style="color: #993333; font-weight: bold;">WHERE</span> constraint_type = <span style="color: #ff0000;">'FOREIGN KEY'</span>;</p>
<p>
<span style="color: #808080; font-style: italic;">-- Generar un scripts de inserts de una tabla</span><br />
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">CONCAT</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'INSERT INTO usuarios (id,nombre,apellidos) VALUES ( '</span> , id , <span style="color: #ff0000;">',&quot;'</span> , nombre , <span style="color: #ff0000;">'&quot;,&quot;'</span> , apellidos , <span style="color: #ff0000;">'&quot;);'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">FROM</span> usuarios;</div>
</div>
</div>
<p></code></p>
<p>Vía: <a href="http://microcodes.blogspot.com/2008/06/using-sql-to-generate-sql.html" target="_blank">Micro Codes</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/06/11/usar-sql-para-generar-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inner, Outer, Natural &amp; Cross JOINs</title>
		<link>http://luauf.com/2008/05/31/inner-outer-natural-cross-joins/</link>
		<comments>http://luauf.com/2008/05/31/inner-outer-natural-cross-joins/#comments</comments>
		<pubDate>Sat, 31 May 2008 18:13:40 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[JOIN]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=352</guid>
		<description><![CDATA[La intención de esta publicación es hacer un breve resumen de los distintos tipos de JOINs disponibles en SQL y para finalizar, un ejemplo práctico de cada uno de ellos. INNER JOIN: es el caso de uni&#243;n interna clásico, combina dos o más tablas descartando todas las filas resultados que no se correspondan en ambas. [...]]]></description>
			<content:encoded><![CDATA[<p>La intención de esta publicación es hacer un breve resumen de los distintos tipos de JOINs disponibles en SQL y para finalizar, un ejemplo práctico de cada uno de ellos.</p>
<ul>
<li><strong>INNER JOIN</strong>: es el caso de uni&oacute;n interna clásico, combina dos o más tablas descartando todas las filas resultados que no se correspondan en ambas.</li>
<li><strong>LEFT OUTER JOIN (o LEFT JOIN)</strong>: combina dos tablas con la diferencia que selecciona todas las filas de la primer tabla sin importar tengan o no coincidencia en la segunda. RIGHT OUTER JOIN (o RIGHT OUTER): es la opción inversa a la anterior. En la mayoría de las bases de datos actuales se puede omitir OUTER.</li>
<li><strong>FULL OUTER JOIN</strong>: combina los resultados de dos o más tablas, tengan o no coincidencia entre s&iacute;.</li>
<li><strong>CROSS JOIN</strong>: retorna el producto cartesiano de dos o más tablas, es decir, combina cada fila de una tabla con cada fila de otra tabla. CROSS JOIN no debería llevar la clausula ON.</li>
<li><strong>NATURAL JOIN</strong>: Es un caso especial de INNER JOIN que compara por cuenta propia la equivalencia de columnas con el mismo nombre y tipo de dato entre dos o m&aacute;s tablas para hacer la combinación de ambas. Hay que tener especial cuidado con su uso, pues puede producir resultados ambiguos o generar problemas si se añaden, quitan, o renombran las columnas.</li>
</ul>
<p><span id="more-352"></span></p>
<p>A continuación veremos un ejemplo bien comentado, donde se ponen en práctica algunos de los distintos tipos de JOIN. El ejemplo fue escrito para MySQL, pero no deberían ser muchas las líneas a modificar para portar el código a otra base de datos.</p>
<p>Esquema de la base de datos y datos de prueba:<br />
<code></p>
<div class="syntax_hilite">
<div id="sql-9">
<div class="sql"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">DATABASE</span> administracion;<br />
<span style="color: #993333; font-weight: bold;">USE</span> administracion;</p>
<p><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> empleados <span style="color:#006600; font-weight:bold;">&#40;</span><br />
&nbsp; &nbsp; id_empleado SMALLINT <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span>,<br />
&nbsp; &nbsp; nombre VARCHAR<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #cc66cc;">64</span><span style="color:#006600; font-weight:bold;">&#41;</span>,<br />
&nbsp; &nbsp; id_funcion INT,<br />
&nbsp; &nbsp; id_sector INT,<br />
&nbsp; &nbsp; id_localidad INT<br />
<span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> funciones <span style="color:#006600; font-weight:bold;">&#40;</span><br />
&nbsp; &nbsp; id_funcion INT <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span>,<br />
&nbsp; &nbsp; nombre VARCHAR<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
<span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> sectores <span style="color:#006600; font-weight:bold;">&#40;</span><br />
&nbsp; &nbsp; id_sector INT <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span>,<br />
&nbsp; &nbsp; nombre VARCHAR<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
<span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> localidades <span style="color:#006600; font-weight:bold;">&#40;</span><br />
&nbsp; &nbsp; id_localidad INT <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span>,<br />
&nbsp; &nbsp; nombre VARCHAR<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
<span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> empleados <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">1</span>, <span style="color: #ff0000;">'Marcos Aguirre'</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span> , <span style="color: #cc66cc;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> empleados <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">2</span>, <span style="color: #ff0000;">'Esteban Quito'</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">4</span> , <span style="color: #cc66cc;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> empleados <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">3</span>, <span style="color: #ff0000;">'Daniel Perez'</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span> , <span style="color: #cc66cc;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> empleados <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">4</span>, <span style="color: #ff0000;">'Carlos Molina'</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span> , <span style="color: #cc66cc;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> empleados <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">5</span>, <span style="color: #ff0000;">'Marcos Aguirre'</span>, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">1</span> , <span style="color: #cc66cc;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sectores <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">1</span>, <span style="color: #ff0000;">'Mantenimiento'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sectores <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">2</span>, <span style="color: #ff0000;">'Ingenieria'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sectores <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">3</span>, <span style="color: #ff0000;">'Costos'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> funciones <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">1</span>, <span style="color: #ff0000;">'Programador'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> funciones <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">2</span>, <span style="color: #ff0000;">'Analista funcional'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> funciones <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">3</span>, <span style="color: #ff0000;">'Administración'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> localidades <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">1</span>, <span style="color: #ff0000;">'Maldonado'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> localidades <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">2</span>, <span style="color: #ff0000;">'Salto'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> localidades <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color: #cc66cc;">3</span>, <span style="color: #ff0000;">'Federación'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</div>
</div>
<p>
</code></p>
<p>Ejemplos JOIN:<br />
<code></p>
<div class="syntax_hilite">
<div id="sql-10">
<div class="sql"><span style="color: #808080; font-style: italic;">-- INNER JOIN</span><br />
<span style="color: #993333; font-weight: bold;">SELECT</span> &nbsp;&nbsp;e.nombre, f.nombre, s.nombre, l.nombre<br />
<span style="color: #993333; font-weight: bold;">FROM</span> &nbsp; &nbsp;&nbsp; &nbsp;empleados e<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> funciones &nbsp; &nbsp;f <span style="color: #993333; font-weight: bold;">USING</span> <span style="color:#006600; font-weight:bold;">&#40;</span>id_funcion<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> sectores &nbsp; &nbsp; s <span style="color: #993333; font-weight: bold;">USING</span> <span style="color:#006600; font-weight:bold;">&#40;</span>id_sector<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> localidades&nbsp; l <span style="color: #993333; font-weight: bold;">USING</span> <span style="color:#006600; font-weight:bold;">&#40;</span>id_localidad<span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #808080; font-style: italic;">-- nombre&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nombre&nbsp; &nbsp; &nbsp; &nbsp;nombre&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nombre&nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;">-- --------------&nbsp; -----------&nbsp; -------------&nbsp; -----------</span><br />
<span style="color: #808080; font-style: italic;">-- Marcos Aguirre&nbsp; Programador&nbsp; Mantenimiento&nbsp; Federación</span><br />
<span style="color: #808080; font-style: italic;">-- Daniel Perez&nbsp; &nbsp; Programador&nbsp; Ingenieria&nbsp; &nbsp; &nbsp;Maldonado&nbsp; </span><br />
<span style="color: #808080; font-style: italic;">-- Carlos Molina&nbsp; &nbsp;Programador&nbsp; Mantenimiento&nbsp; Federación</span></p>
<p>
<span style="color: #808080; font-style: italic;">-- CROSS JOIN:</span><br />
<span style="color: #993333; font-weight: bold;">SELECT</span> &nbsp;&nbsp;empleados.id_empleado, funciones.id_funcion, sectores.id_sector, localidades.id_localidad<br />
<span style="color: #993333; font-weight: bold;">FROM</span> &nbsp; &nbsp;&nbsp; &nbsp;empleados <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">CROSS</span> <span style="color: #993333; font-weight: bold;">JOIN</span> funciones<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">CROSS</span> <span style="color: #993333; font-weight: bold;">JOIN</span> sectores<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">CROSS</span> <span style="color: #993333; font-weight: bold;">JOIN</span> localidades</p>
<p><span style="color: #808080; font-style: italic;">-- No voy a mostrar el resultado pues son bastantes filas (135 filas)</span><br />
<span style="color: #808080; font-style: italic;">-- empleados CROSS JOIN funciones = 15 filas</span><br />
<span style="color: #808080; font-style: italic;">-- empleados CROSS JOIN funciones CROSS JOIN sectores = 45 filas</span><br />
<span style="color: #808080; font-style: italic;">-- empleados CROSS JOIN funciones CROSS JOIN sectores CROSS JOIN localidades= 135 filas</span></p>
<p>
<span style="color: #808080; font-style: italic;">-- LEFT OUTER JOIN (o LEFT JOIN)</span><br />
<span style="color: #993333; font-weight: bold;">SELECT</span> &nbsp;&nbsp;e.nombre, f.nombre, s.nombre, l.nombre<br />
<span style="color: #993333; font-weight: bold;">FROM</span> &nbsp; &nbsp;&nbsp; &nbsp;empleados e<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">JOIN</span> funciones &nbsp; &nbsp; f <span style="color: #993333; font-weight: bold;">USING</span> <span style="color:#006600; font-weight:bold;">&#40;</span>id_funcion<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">JOIN</span> sectores &nbsp;s <span style="color: #993333; font-weight: bold;">USING</span> <span style="color:#006600; font-weight:bold;">&#40;</span>id_sector<span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">LEFT</span> <span style="color: #993333; font-weight: bold;">JOIN</span> localidades&nbsp; &nbsp;l <span style="color: #993333; font-weight: bold;">USING</span> <span style="color:#006600; font-weight:bold;">&#40;</span>id_localidad<span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #808080; font-style: italic;">-- nombre&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nombre&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nombre&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nombre&nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;">-- --------------&nbsp; ------------------&nbsp; -------------&nbsp; -----------</span><br />
<span style="color: #808080; font-style: italic;">-- Marcos Aguirre&nbsp; Programador&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Mantenimiento&nbsp; Federación</span><br />
<span style="color: #808080; font-style: italic;">-- Esteban Quito&nbsp; &nbsp;Analista funcional&nbsp; (NULL)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Salto&nbsp; &nbsp; &nbsp; </span><br />
<span style="color: #808080; font-style: italic;">-- Daniel Perez&nbsp; &nbsp; Programador&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ingenieria&nbsp; &nbsp; &nbsp;Maldonado&nbsp; </span><br />
<span style="color: #808080; font-style: italic;">-- Carlos Molina&nbsp; &nbsp;Programador&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Mantenimiento&nbsp; Federación</span><br />
<span style="color: #808080; font-style: italic;">-- Marcos Aguirre&nbsp; (NULL)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mantenimiento&nbsp; Maldonado&nbsp; </span></p>
<p>
<span style="color: #808080; font-style: italic;">-- NATURAL JOIN</span><br />
<span style="color: #808080; font-style: italic;">-- ------------</span><br />
<span style="color: #993333; font-weight: bold;">SELECT</span> &nbsp;&nbsp;e.nombre,l.nombre<br />
<span style="color: #993333; font-weight: bold;">FROM</span> &nbsp; &nbsp;&nbsp; &nbsp;empleados e<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">NATURAL</span> <span style="color: #993333; font-weight: bold;">JOIN</span> localidades l;<br />
<span style="color: #808080; font-style: italic;">-- No tenemos resultados, pues la base de datos intenta hacer la combinación utilizando los campos id_localidad y nombre </span><br />
<span style="color: #808080; font-style: italic;">-- Les avisé que era peligroso el uso de NATURAL JOIN</span></p>
<p><span style="color: #808080; font-style: italic;">-- Para evitar esto, deberiamos cambiar el nombre del campo 'nombre' de la tabla 'localidades'</span><br />
<span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> localidades <span style="color: #993333; font-weight: bold;">CHANGE</span> nombre nombre_localidad VARCHAR<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #cc66cc;">128</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
<p><span style="color: #993333; font-weight: bold;">SELECT</span> &nbsp;&nbsp;e.nombre,l.nombre_localidad<br />
<span style="color: #993333; font-weight: bold;">FROM</span> &nbsp; &nbsp;&nbsp; &nbsp;empleados e<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">NATURAL</span> <span style="color: #993333; font-weight: bold;">JOIN</span> localidades l;</p>
<p><span style="color: #808080; font-style: italic;">-- nombre&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nombre_localidad</span><br />
<span style="color: #808080; font-style: italic;">-- --------------&nbsp; ----------------</span><br />
<span style="color: #808080; font-style: italic;">-- Marcos Aguirre&nbsp; Federación&nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;">-- Esteban Quito&nbsp; &nbsp;Salto&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;">-- Daniel Perez&nbsp; &nbsp; Maldonado&nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;">-- Carlos Molina&nbsp; &nbsp;Federación&nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;">-- Marcos Aguirre&nbsp; Maldonado </span></div>
</div>
</div>
<p>
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/05/31/inner-outer-natural-cross-joins/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Múltiple INNER JOIN &#8211; MySQL vs MS SQL</title>
		<link>http://luauf.com/2008/05/11/multiple-inner-join-mysql-vs-ms-sql/</link>
		<comments>http://luauf.com/2008/05/11/multiple-inner-join-mysql-vs-ms-sql/#comments</comments>
		<pubDate>Mon, 12 May 2008 00:13:20 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[INNER JOIN]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=268</guid>
		<description><![CDATA[MySQL tiene una sintaxis bastante flexible comparada con MS SQL al momento de hacer JOINs. En MySQL puedes hacer un JOIN de dos maneras, sin embargo, sería conveniente hacerlo de la forma de MS SQL de manera de que el código sea más portable. En MySQL pudes hacer un múltiple JOIN (JOIN entre varias tablas) [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL tiene una sintaxis bastante flexible comparada con MS SQL al momento de hacer JOINs. En MySQL puedes hacer un JOIN de dos maneras, sin embargo, sería conveniente hacerlo de la forma de MS SQL de manera de que el código sea más portable.</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-269" title="ms_sql_logo" src="http://luauf.com/wp-content/uploads/2008/05/ms_sql_logo-300x54.gif" alt="" width="300" height="54" /></p>
<p><span id="more-268"></span></p>
<p>En MySQL pudes hacer un múltiple JOIN (JOIN entre varias tablas) de la siguiente manera:<br />
<code></p>
<div class="syntax_hilite">
<div id="sql-13">
<div class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span>&nbsp; * <br />
<span style="color: #993333; font-weight: bold;">FROM</span>&nbsp; &nbsp;&nbsp;tabla1<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> tabla2 <span style="color: #993333; font-weight: bold;">ON</span> tabla1.id=tabla2.id<br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> tabla3 <span style="color: #993333; font-weight: bold;">ON</span> tabla2.id2=tabla3.id2</div>
</div>
</div>
<p>
</code><br />
En esta consulta, los JOINS son ejecutados secuencialmente, primero se hacer el primer JOIN, cuando está listo se hace el siguiente, luego el siguiente y as&iacute; sucesivamente.</p>
<p>En MS SQL, la sintaxis para el m&uacute;ltiple JOIN necesita hacerse de la siguiente forma (tambi&eacute;n soportada por MySQL):<br />
<code></p>
<div class="syntax_hilite">
<div id="sql-14">
<div class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> &nbsp;* <br />
<span style="color: #993333; font-weight: bold;">FROM</span> &nbsp; &nbsp;tabla1<br />
<span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> <br />
&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#40;</span>tabla2 <span style="color: #993333; font-weight: bold;">INNER</span> <span style="color: #993333; font-weight: bold;">JOIN</span> tabla3 <span style="color: #993333; font-weight: bold;">ON</span> tabla2.id2=table3.id2<span style="color:#006600; font-weight:bold;">&#41;</span> <br />
&nbsp; &nbsp; <span style="color: #993333; font-weight: bold;">ON</span> tabla1.id=tabla2.id</div>
</div>
</div>
<p>
</code><br />
En esta consulta, los JOINs son ejecutados de adentro hacia afuera. Primero se ejecuta el JOIN entre paréntesis más internos, luego el siguiente fuera de los par&eacute;ntesis, luego el siguiente y as&iacute; sucesivamente.</p>
<p>Vía: <a href="http://vxt.ca/news.php?articleID=368" target="_blank">VXT</a></p>
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/05/11/multiple-inner-join-mysql-vs-ms-sql/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Inyección SQL</title>
		<link>http://luauf.com/2008/04/08/inyeccion-sql/</link>
		<comments>http://luauf.com/2008/04/08/inyeccion-sql/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 03:18:42 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Inyection]]></category>

		<guid isPermaLink="false">http://luauf.com/?p=109</guid>
		<description><![CDATA[Un poco de humor con SQL Inyection...]]></description>
			<content:encoded><![CDATA[<p>Un poco de humor con SQL Inyection...</p>
<p style="text-align: center;"><a href="http://luauf.com/wp-content/uploads/2008/04/inyection.jpg" target="_blank"><img class="aligncenter size-medium wp-image-110" title="inyection" src="http://luauf.com/wp-content/uploads/2008/04/inyection-300x92.jpg" alt="" width="300" height="92" /></a></p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://luauf.com/2008/04/08/inyeccion-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

