raxhemanth Ответов: 1

Как объединить две таблицы с помощью подзапроса?


Здесь у меня есть два стола
один из них-Employeedetail, состоящий из столбцов (EmpId,Firstname,Lastname,GenderId,зарплата) и
в другой таблице у меня стоит tblGender(идентификационный номер,пол), состоящая отношения foreignkey отношения.

Здесь я хочу отобразить мужские записи из EmployeeDetail с помощью подзапроса(bu joining Gender colun to the Employeedetail)

я получил это, используя соединения, написав запрос как

Select Firstname,Lastname,Salary,Gender from Employeedetail 
join tblGender
on Employeedetail.GenderId = tblGender.Id
Where Gender ='Male'

но как это сделать с помощью подзапроса.

я пробовал это что-то вроде

Select Firstname,Lastname,Salary,GenderId
From Employeedetail where GenderId in (Select Id from tblGender where Id=1)


но только получение GenderId, но я хочу показать Male & Female вместо GenderId помогите мне кто-нибудь

1 Ответов

Рейтинг:
11

yusuf_ahmed

Вы ищете что-то вроде следующего

Select ed.Firstname,ed.Lastname,ed.Salary,g.Gender
From Employeedetail ed
    cross apply (Select g.Id,g.Gender from tblGender g
                    where g.Id=1
                        and ed.GenderId=g.Id) g


raxhemanth

Спасибо Юсуф но не работает

yusuf_ahmed

Какую ошибку вы получаете?

raxhemanth

Msg 207, Уровень 16, Состояние 1, Строка 5
GenderId недопустимое имя столбца''.

yusuf_ahmed

Жаль, что

Выберите ed."Имя", изд.Фамилия,Эд.Заработная плата,г. Пол
От Employeedetail ed
крест относится (выберите G.ИД,г. Пол из tblGender г
где g.Id=1
и Эд.GenderId=g.Id) g

raxhemanth

Большое спасибо тааак Юсуф это работает отлично
можете ли вы умоляюще сказать мне, что такое перекрестное применение ? что такое использование?

yusuf_ahmed

Вы можете погуглить "перекрестное применение" и получить более подробную информацию о нем.

raxhemanth

хорошо Хорошо спасибо