Sql 使用一个表中的不同记录将其与另一个表的不同条目组合
我有两张桌子。雇员和资格 员工Sql 使用一个表中的不同记录将其与另一个表的不同条目组合,sql,sql-server,join,Sql,Sql Server,Join,我有两张桌子。雇员和资格 员工 Emp_id Name Qualification1 Qualification2 Qualification3 10001 xxxxxx 1 3 5 10002 yyyyyy 3 2 ....... ...... ..... 资格认证 Qual_ID Qual_name
Emp_id Name Qualification1 Qualification2 Qualification3
10001 xxxxxx 1 3 5
10002 yyyyyy 3 2
.......
......
.....
资格认证
Qual_ID Qual_name
1 B.Tech
2 MCA
3 M.Tech
如何使用joinquery获得以下输出
Emp_ID Name Qual1 Qual2 Qual3
10001 xxxxxxx B.Tech MCA pppp
10002 yyyyyyy B.Tech
......
.....
.....
试试这个:
试试这个
Select E.Emp_ID,E.Name,Q1.Qual_Name,Q2.Qual_Name, Q3.Qual_Name
From
Employees AS E
INNER JOIN Qualifications As Q1 ON E.Qualification1=Q1.Qual_ID
INNER JOIN Qualifications As Q2 ON E.Qualification2=Q2.Qual_ID
INNER JOIN Qualifications As Q3 ON E.Qualification3=Q3.Qual_ID
您应该有另一个表
员工资格
。这个好像不在里面。这样,寻找具有特定资格的员工就不需要搜索3列,而且您可以处理具有3个以上资格的员工。@Romil您能告诉我为什么这不起作用吗@VishalSuthar,您为所有内部联接条件输入了q1.Qual_ID。@VishalSuthar,我在匆忙中犯了打字错误。谢谢我已经更新了帖子。@Romil所以你能给我正确的解决方案吗?因为我在帖子中没有看到任何更新?@downvoter这个查询会不起作用吗?你能费心评论一下吗?@rejithrkrishnan:如果它起作用的话——表达你的感激是礼貌的,也是正确的做法。
Select E.Emp_ID,E.Name,Q1.Qual_Name,Q2.Qual_Name, Q3.Qual_Name
From
Employees AS E
INNER JOIN Qualifications As Q1 ON E.Qualification1=Q1.Qual_ID
INNER JOIN Qualifications As Q2 ON E.Qualification2=Q2.Qual_ID
INNER JOIN Qualifications As Q3 ON E.Qualification3=Q3.Qual_ID
SELECT e.emp_id,
e.name,
q1.qual_name,
q2.qual_name,
q3.qual_name,
FROM employee e
INNER JOIN qualifications q1
ON e.qualification1 = q1.qual_id
INNER JOIN qualifications q2
ON e.qualification2 = q2.qual_id
INNER JOIN qualifications q3
ON e.qualification3 = q2.qual_id