Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: ryan parker en 5 Julio 2013, 01:54 am



Título: Consultas relacionadas sin JOIN
Publicado por: ryan parker en 5 Julio 2013, 01:54 am
Que tal gente!

Una duda, se puede realizar consultas relacionadas sin joins de tal manera que muestre algun campo especifico de una llave foranea. Por ejemplo:

Código:
Carrera		Estudiante
------- ----------
idCarrera PK idEstudiante PK
Titulo idCarrera FK
Nombres
Apellido

Código
  1. SELECT Estudiante.idCarrera AS [Carrera], Estudiante.Nombres, Estudiante.Apellido FROM Estudiante;
  2. SELECT Titulo FROM Carrera WHERE Carrera.idCarrera LIKE '%CS%';
  3.  
Código:
Carrera	Nombres	Apellidos
IS Jeff Parker
CS Mat Brown

Citar
Titulo
Ciencias de Computacion

Código
  1. SELECT Estudiante.idCarrera AS [Carrera], Estudiante.Nombres, Estudiante.Apellido FROM Estudiante WHERE Estudiante.idCarrera = (SELECT Carrera.Titulo FROM Carrera WHERE Carrera.idCarrera LIKE '%CS%');
  2.  
Código:
Carrera			Nombres Apellidos

Aqui la informacion me aparece en blanco!

Lo que quiero lograr es algo parecido esto

Código:
Carrera			Nombres Apellidos
Ciencias de computacion Mat Brown


Título: Re: Consultas relacionadas sin JOIN
Publicado por: 1mpuls0 en 5 Julio 2013, 16:29 pm
Se puede hacer así.

Código
  1. SELECT C.idCarrera, C.Titulo, E.idEstudiante, E.Nombres, E.Apellido FROM Estudiante E, Carrera C
  2. WHERE E.idCarrera=C.idCarrera AND C.idCarrera='IS'
  3.  

Saludos



Título: Re: Consultas relacionadas sin JOIN
Publicado por: s00rk en 6 Julio 2013, 13:44 pm
Usando tu consulta, solo arreglando los pequeños fallos

Código
  1. SELECT Estudiante.idCarrera AS [Carrera], Estudiante.Nombres, Estudiante.Apellido FROM Estudiante WHERE Estudiante.idCarrera IN (SELECT Carrera.idCarrera FROM Carrera WHERE Carrera.idCarrera LIKE '%CS%');
  2.