l'utilisation de jointures combine deux ou plusieurs tables dans une même table

J'ai deux types de bases de données comme,

Db1:

Degrés :

  • ID
  • prénom
  • Type

Qualifications:

  • Id
  • CandidateId
  • DegreeId
  • spécialisation

DB2:

UG_LIST:

  • prénom

  • ID

PGLIST:

  • prénom

  • ID

DoctorateList:

  • prénom

  • ID

Ici la table Degrees est unique. Tous les degrés comme Ug, Pg, doctorat sont stockés dans une table unique appelée Degrees .But Dans la database -2, chaque élément créé en tant que tables distinctes. Je dois donc stocker ces valeurs de trois tables dans la table Qualifications .

J'ai utilisé des jointures pour cela. Mais je ne peux pas créer la requête de sélection pour cela.

SELECT top(50) 'INSERT INTO CandidateQualifications(candidateId,DegreeId,specialization) VALUES('+ Cast(c.CandidateID as varchar(50))+',''' + Isnull(Cast(u.Id as varchar(50)),'NULL') Or cast(p.Id as varchar(50)) or cast(d.Id as varchar(50))+','+ IsNull(''''+c.ugspecification+'''', 'NULL')+')' FROM candidatedetails as c right join UG_List As u ON c.qualification=u.UGName right join PG_List As p ON c.qualification=u.pgname right join Docorate_List As d ON c.qualification=u.docorate 

S'il vous plaît dites comment faire cela? J'utilise Ou opérateur mais il n'accepte pas.

Une idée?

Remplacer:

 Isnull(Cast(u.Id as varchar(50)),'NULL') Or cast(p.Id as varchar(50)) or cast(d.Id as varchar(50)) 

Avec:

 Cast(Coalesce(u.Id,p.Id,d.Id)as varchar(50)) 

Je m'attendrais à ce que les jointures soient left

 SELECT top(50) 'INSERT INTO CandidateQualifications(candidateId,DegreeId,specialization) VALUES('+ Cast(c.CandidateID as varchar(50))+',''' + Cast(Coalesce(u.Id,p.Id,d.Id)as varchar(50))+','+ IsNull(''''+c.ugspecification+'''', 'NULL')+')' FROM candidatedetails as c LEFT join UG_List As u ON c.qualification=u.UGName LEFT join PG_List As p ON c.qualification=p.pgname LEFT join Docorate_List As d ON c.qualification=d.docorate