Confusão sobre combinação de tabelas em consultas SQL

  • Autor Autor InformaticaPC
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
InformaticaPC

InformaticaPC

Delta
Programador
Tengo una consulta que quizás sea muy tonta, pero que ahora mismo me tiene confuso y agradecería mucho que me lo aclarasen.

Se supone que las siguientes consultas son idénticas:

-----------
select per.idpersona, per.nombre, per.idprovincia, pro.idprovincia, pro.provincia
from personas per, provincias pro
where
(
(per.idprovincia = pro.idprovincia) AND
(pro.provincia = 'LAS PALMAS') OR
(pro.idprovincia = 5)
);
-----------
select per.idpersona, per.nombre, per.idprovincia, pro.idprovincia, pro.provincia
from personas per INNER JOIN provincias pro ON (per.idprovincia = pro.idprovincia)
where
(
(pro.provincia = 'LAS PALMAS') OR
(pro.idprovincia = 5)
);
-----------

... Pero sin embargo no es así, devuelven registros diferentes (la primera los devuelve incorrectos, sin asociar bien 'idprovincia' en algunos registros).

Sin embargo sí que funciona del siguiente modo (agrupando las condiciones):


---------------
select per.idpersona, per.nombre, per.idprovincia, pro.idprovincia, pro.provincia
from personas per, provincias pro
where
(
(per.idprovincia = pro.idprovincia) AND
( (pro.provincia = 'LAS PALMAS') OR (pro.idprovincia=5) )
);
---------------

En su día cuando lo estudié siempre utilizamos sin problema (aparentemente) la primera de las formas, yo luego aprendeí las otras... pero ahora mismo me surgido este caso y estoy descolocado desde ayer, ya que se supone que en el primer y segundo casos se obtiene una tabla con los registros relacionados únicamente, y que luego sobre los campos de cada fila se aplica el resto de condiciones.

:s
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
tienes otro id.provincia con provincia = 'LAS PALMAS' ?
 
Nada ya está aclarado gracias !
 
Última edição:
Voltar
Topo