SQL - Ayuda con vista

 
Vista:

Ayuda con vista

Publicado por Invitado (2 intervenciones) el 02/07/2015 16:15:03
Hola, necesito ayuda para saber como seria una vista tal que muestre nombre, país y ciudad de cada sucursal que componen cada Trunk, siendo sucursal y trunk las siguientes tablas:

sucursal (codSuc, nomSuc, paisSuc, ciuSuc, gteSuc, mailSuc, telSuc)

trunk(idTrunk, codSucOri, codSucDes, fchTrunk, stsTrunk)

donde codSuc es clave primaria de sucursal, codSucOri y codSucDes claves foraneas de sucursal(codSuc) en trunk
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Ayuda con vista

Publicado por leonardo_josue (1173 intervenciones) el 02/07/2015 17:06:34
Hola invitado:

y... ¿qué fue lo que intentaste hacer?, porque supongo que intentaste hacer algo verdad?. postea lo que tengas de avance y con gusto te ayudamos a completar lo que falte.

la manera más fácil de hacer esto es con JOIN's, (si no sabes cómo funcionan pregúntale a Santa WIKIPEDIA o a San GOOGLE, ellos generalmente tienen la respuesta a todo.

En cuanto a que tengas dos campos apuntando hacia la misma tabla foránea, puedes hacer dos JOIN's a esa tabla, pero utilizando un alias distinto, es decir algo como esto.

1
2
3
4
5
....
FROM tabla_a TA
INNER JOIN tabla_b TB1 ON TB1.id = TA.campo1
INNER JOIN tabla_b TB2 ON TB2.id = TA.campo2
...

Observa que tengo los alias (TB1 y TB2) que apuntan hacia la misma tabla, pero de esta manera tratas cada campo de manera independiente.

Haz la prueba y nos comentas.

Saludos
Leo.
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

Ayuda con vista

Publicado por Invitado (2 intervenciones) el 02/07/2015 17:25:06
Hola gracias por responder, lo que hice fue:

create view VistaEjercicio(
Select s1.nomSuc, s1.ciuSuc, s1.paisSuc, s2.nomSuc, s2.ciuSuc, s2.paisSuc
From sucursal s1, sucursal s2, trunk t
where s1.codSuc = t.codsucOri AND
t.codSucOri = s2.codSuc
)

eso estaría bien?
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Ayuda con vista

Publicado por leonardo_josue (1173 intervenciones) el 02/07/2015 18:43:12
Hola de nuevo:

1
eso estaría bien?

Esto sólo tú lo sabes. Es decir, si no tienes errores en la consulta y el resultado es el esperado, entonces puedes deducir que es correcta. De igual manera si la consulta tiene errores o no regresa el resultado esperado, entonces la consulta está mal, pero eso deberías decirlo tú, no nosotros.

Sintácticamente la consulta no tiene nada de malo, pero como te comenté en mi primer post, la mejor forma de hacer esto es con JOIN's, no con uniones explícitas:

En lugar de hacer esto:

1
2
3
...
FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo
...

Haz esto:

1
2
3
4
...
FROM tabla1
INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
...

El resultado es el mismo, pero el la consulta tendrá un mejor desempeño. En cuanto a la sintaxis para la creación de la vista como tal, no nos dices con qué DBMS estás trabajando, pero algunos marcan el estándar de la siguiente forma

1
CREATE VIEW nombre_vista AS aquí_pones_la_consulta;

Insisto, esto depende del motor de BD's que estés utilizando. Coméntanos al respecto.

Saludos
Leo
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