[pyar] OT: Comparación de queries
Ricardo Aráoz
ricaraoz en gmail.com
Mie Jun 23 13:54:13 ART 2010
On 20/06/2010 05:47 p.m., "José C. Massón" wrote:
> El 20/06/10 15:31, Sebastian Bassi escribió:
>> 2010/6/20 Roberto Alsina<ralsina en netmanagers.com.ar>:
>>> Tal vez sea buena idea pedir un EXPLAIN para ver que hace cada una.
>>
>> Buena idea, no entiendo bien el output pero se ve que la equi-join se
>> hacen en menos pasos:
>>
>> sqlite> EXPLAIN SELECT q_name FROM miranda WHERE parID in (SELECT
>
>
> Mmmm que fea que es la salida de explain de sqlite!
>
> No sé como se comportará sqlite (estoy acostumbrado a MySQL), pero yo
> evitaría hacer queries anidadas
>
> Por que no lo hacés con JOIN??
>
> SELECT m.q_name FROM miranda m
> INNER JOIN parid_bin p ON (m.parID = p.parID AND p.bin = '10B')
>
> No tengo tu DB pero debería andar.
Si, el join explícito es siempre mejor idea que el implícito. Aunque
sólo sea a fines de documentar mejor lo que estás haciendo ya que en el
"ON" das la condición para juntar las tablas. Esto puede ser importante
y muy cómodo cuando los "WHERE" se vuelven más complicados y/o cuando
combinás muchas tablas.
De todas maneras si mirás el join explícito te vas a dar cuenta que
"p.bin = '10B'" no es parte del JOIN sino del WHERE , con lo cual para
mí debería quedar :
SELECT m.q_name
FROM miranda m
INNER JOIN parid_bin p
ON m.parID = p.parID
WHERE p.bin = '10B'
More information about the pyar
mailing list