Bases de Datos - Usar SELECT en columna

   
Vista:

Usar SELECT en columna

Publicado por Miguel (2 intervenciones) el 03/03/2016 09:55:43
Muy buenas a todos.
Cuento antes un poco sobre mí para que no me den de golpes. Estudié en su momento programación informática y estuve trabajando en diversos proyectos. Debido a la situació económica en Espana tuve que emigrar a un país europeo en busca de trabajo. Llevaba dos anos sin trabajo como informático pero haciendo pequenos desarrollos para no perder el hilo y probar cosas que salían al mercado. Desde enero de este ano conseguí, depués de mucho esfuerzo aprendiendo alemán (aunque todavía que queda un larguísimo recorrido), un trabajo como programador de base de datos Oracle.

Como véis estaba muy oxidado y aunque lo fundamental permanece los pequenos detalles los he olvidado.

Me gustaría saber si en una consulta es recomendable usar un SELECT en una columna en vez de hacer un JOIN. Si eso es más óptimo que sacar un LEFT OUTER JOIN. Ya que son tablas rollo: países, ciudades, etc.
La base de datos está en normalización 3. Entonces si en una tabla rollo: PERSONAS. Contiene un oid para ciudad y otro para país. En esos casos es mejor usar una SELECT en una columna en vez de hacer un JOIN contra esas tablas, verdad?

Un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Usar SELECT en columna

Publicado por Juan R. (39 intervenciones) el 18/03/2016 11:45:49
Buenas Miguel

Creo que lo que quieres preguntar es si es más óptimo un producto cartesiano que un JOIN, lógicamente siempre es más optimizado el JOIN, si no es así, explícate mejor porque creo que no te acabé de entender bien.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Usar SELECT en columna

Publicado por Miguel (2 intervenciones) el 18/03/2016 12:03:13
Producto cartesiano no es, creo, ya que "enlazo" lo que realizo el join mismo en la columna. Por ejemplo

select
(select ca.nombre_calle from t_callejero ca where per.callejero_oid = ca.oid) as calle
from t_personas per;

Sería lo mismo que poner:

select ca.nombre_calle
from t_personas per
left outer join t_callejero ca on per.callejero_oid = ca.oid;

Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar