Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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:

Carrera Estudiante
------- ----------
idCarrera PK idEstudiante PK
Titulo idCarrera FK
Nombres
Apellido


Código (sql) [Seleccionar]
SELECT Estudiante.idCarrera AS [Carrera], Estudiante.Nombres, Estudiante.Apellido FROM Estudiante;
SELECT Titulo FROM Carrera WHERE Carrera.idCarrera LIKE '%CS%';

Carrera Nombres Apellidos
IS Jeff Parker
CS Mat Brown


CitarTitulo
Ciencias de Computacion

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

Carrera Nombres Apellidos


Aqui la informacion me aparece en blanco!

Lo que quiero lograr es algo parecido esto

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 (sql) [Seleccionar]

SELECT C.idCarrera, C.Titulo, E.idEstudiante, E.Nombres, E.Apellido FROM Estudiante E, Carrera C
WHERE E.idCarrera=C.idCarrera AND C.idCarrera='IS'


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 (sql) [Seleccionar]

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%');