Это отредактированный вопрос с полной проблемой.Ниже приведена структура таблицы.(Ниже показаны только необходимые столбцы.)
Имя таблицы: tblQualificationMaster
.
Qualiid QualiName
------- ---------
1 S.S.C
2 H.S.C
3 B.Sc
4 M.C.A
5 M.Sc(IT)
6 B.E
7 M.B.A
8 B.Com
9 M.E
10 C.S
12 M.Com
Имя таблицы: tblAppResumeMaster
.
AppId FirstName LastName TotalExpYears TotalExpMonths
----- --------- -------- ------------- --------------
1 Rahul Patel 7 0
2 Ritesh Shah 0 0
3 Ajay shah 7 6
4 Ram Prasad 7 6
5 Mohan Varma 5 0
6 Gaurav Kumar 8 0
Имя таблицы:tblAppQualificationDetail
.(Для лучшего чтения я пишу значения, разделенные запятыми, для всех строк, кроме первой, но в моей базе данных все значения хранятся как для appid=1
. То есть одна строка для каждой qualificationid
.)
Appid QualiId
----- -------
1 1
1 2
1 3
1 4
2 1,2,3
3 1,2,6
4 1,2,3,5
5 1,2,3,4
6 1,2,6,9
ТаблицаИмя: tblVacancyMaster
VacId Title Criteria Req.Exp KeySkills
----- -------------- -------- ------- ---------------
1 Programmer 4,5,6 4 .net,java,php
2 TL 4,5 3 .net,java,php
3 Project Mngr. 4,6,9 4 .net,java,php,sql
4 Java Developer 4,5,6 0 java,oracle,sql
5 Manager 7,9 7 bussiness management
6 Supervisior 3,8 3 marketing
7 PHP Developer 4,5 0 php,mysql,send
Теперь на основе этой детали я хочу создать представление, которое должно иметь следующие поля.(Это показано для VacId=1
, но мне это нужно для всех вакансий, чтобы я мог использовать предложение where в этом представлении, например select * from view where VacId=3
.)
AppId FirstName LastName QualiName QualiId TotalExp VacId VacTitle
----- --------- -------- --------- ------- -------- ----- ----------
1 Rahul Patel M.C.A 4 7 1 Programmer
3 Ajay Shah B.E. 6 7 1 Programmer
5 Mohan Verma M.C.A 4 5 1 Programmer
6 Gaurav Kumar B.E 6 8 1 Programmer
6 Gaurav Kumar M.E 9 8 1 Programmer
В этом представлении отображается AppId 1,3,5 и6 имеют право на вакансию 3, но в них отображается дубликат записи для приложения 6. Как я могу получить уникальные записи?
Я могу ошибаться при проектировании базы данных, потому что это мой первый проект, и я изучаю базу данных, поэтому позвольте мнезнать и исправлять, если что-то идет вразрез со стандартами базы данных.
Мой предыдущий запрос (Примечание. Ранее я использовал одну промежуточную таблицу tblVacancyCriteriaDetail
, в которой были столбцы VacId
и QualiId
, а моя таблица tblVacancyMaster
былане имеет критериев столбца)
select
ARM.AppId,
ARM.AppFirstName,
ARM.AppLastName,
ARM.AppMobileNo,
AQD.QualiId,
VacQualiDetail.QualiName,
ARM.AppEmailId1,
VacQualiDetail.VacID,
ARM.TotalExpYear,
VacQualiDetail.VacTitle,
VacQualiDetail.DeptId,
VacQualiDetail.CompId,
CM.CompName
from
tblAppResumeMaster ARM,
tblAppQualificationDetail AQD,
tblCompanyMaster CM,
(
select
VM.VacID,
VM.VacTitle,
VM.CompId,
VM.DeptId,
vcd.QualificationID,
QM.QualiName,
VM.RequiredExperience as Expe
from
tblVacancyCriteriaDetail VCD,
tblVacancyMaster VM,
tblQualificationMaster QM
where VCD.VacID=VM.VacID
and VCD.QualificationID=QM.QualificationId
and VM.Status=0
) as VacQualiDetail
where AQD.AppId=arm.AppId
and aqd.QualiId=VacQualiDetail.QualificationID
and ARM.TotalExpYear>=Expe
and cm.CompId=VacQualiDetail.CompId