【发布时间】:2019-11-28 04:32:08
【问题描述】:
我有 3 个表,分别称为 CompanyInfo、IDInfo 和 PersonalInfo。
目标是获取P.[First Name], P.[Last Name], I.PAN, C.DOB。
我可以使用左连接或右连接来满足这一点,但表的顺序可能会改变,因为它是某些工具的输入,用户可以按任何顺序输入表名,例如 user1 提到“CompanyInfo、IDInfo、PersonalInfo”, user2 提到了“IDInfo、PersonalInfo、CompanyInfo”等等。
表数据如下,有没有办法通过单个 SQL 查询(可能是联合)获取数据。假设我想获取 ID = 4 的数据,我应该得到:
FirstName LastName PAN DOB
User Four UAN44444 NULL
如果 ID = 3
FirstName LastName PAN DOB
User THree NULL 1987-12-08
公司信息表
ID Company OfficialEmail EmpID DOB Department Joining Date Status
1 RBS userone@rbs.co.uk UK222222 1980-11-15 HR 2012-11-20 Inactive
3 Infosys userthree@infy.com IN333333 1987-12-08 Admin 2016-08-18 Inactive
5 IBM userfive@us.ibm.com US55555 1986-03-26 Finance 2014-06-26 Active
10 Samsung userten@samsung.com SK101010 1988-04-04 Admin 2013-04-07 Active
IDInfo 表
ID UAN TIN PAN
2 UAN22222 TIN222222 PAN22222
4 UAN44444 TIN444444 PAN44444
5 UAN55555 TIN555555 PAN55555
个人信息表
ID FirstName LastName PhoneNumber City Address ZipCode Email
1 User One +44-7432564125 London United Kingdom RG231FDT userone@gmail.com
2 User Two +91-987654321 New Delhi India 110006 usertwo@gmail.com
3 User Three +44-782136425 Guildford United Kingdom GUI74DS userthree@gmail.com
4 User Four +1-230156428 Atlanta United States GA 30337 userfour@gmail.com
5 User Five +1-650324152 Houston United States TX 77077 userfive@gmail.com
6 User Six +91-8885552223 Mumbai India 400012 usersix@gmail.com
7 User Seven +91-9998887771 Bangalore India 560021 userseven@gmail.com
【问题讨论】:
-
SO 不是一个代码编写服务,请做一些研究,尝试一下,当卡住时发布你的尝试。
-
试试我的答案。希望对你有帮助。
标签: sql sql-server sql-server-2012 ssms-2017