miércoles, 1 de febrero de 2012

La timidez de MySQL

No sorprende ya el que MySQL haya dejado para más tarde ciertos aspectos de SQL, de hecho, forma parte de su filosofía de origen, un producto destinado a obtener la máxima velocidad en entornos cliente-servidor sobre HTTP.

No obstante, esto ha sido hasta gracioso, uno de esos errores que dice uno "manda uebos" pero que mira, es así. Todo surge de un compañero que me llama todo alarmado porque MySQL no funciona como es debido.
 use apruebas;

 select *
 from L_TA rigth join  L_TB on  a=d ;

 select *
 from L_TB left join  L_TA on  a=d ;

Me he tomado la libertad de ponerle colorines a las palabras clave en vez de colocar un pantallazo de MySQL Workbench, pero es tal y como se ve en su ventana de edición. Tampoco muestro la estructura de las tablas porque no hace falta para lo que voy a contar. En cualquier caso, parece evidente que las dos consultas deberían dar el mismo resultado. Pues no.

Hasta que me he dado cuenta del colorín de rigth, y es que, claro, está mal escrito:
 select *
 from L_TA right join  L_TB on  a=d ;

Adonde quería llegar es que MySQL no dice nada sobre el "rigth", se lo traga sin más, y ejecuta un inner join sin más preocupaciones. Como siempre, la suerte de comentárselo al de al lado, y la suerte de la inspiración de este. Ya conocía los casos de foreign key fuera de innodb pero ¿esto? Será que MySQL es tímido...

No hay comentarios:

Publicar un comentario