首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与两个不同表的一个表关系

与两个不同表的一个表关系
EN

Stack Overflow用户
提问于 2018-02-28 09:10:51
回答 1查看 51关注 0票数 0

表A中有一个属性,它指示它将得到哪个表。

例如:

表A(资讯科技)

代码语言:javascript
复制
 InfoID | Type 

表B(学生)

代码语言:javascript
复制
 StudentID | Name | Course |

表C(雇员)

代码语言:javascript
复制
 EmployeeID | Name | Company |

如果输入=1,则在表B(学生)中获取信息

代码语言:javascript
复制
InfoID | StudentID | Name | Course

在表C中获取其他信息(员工)

代码语言:javascript
复制
InfoID | EmployeeID| Name | Company
EN

回答 1

Stack Overflow用户

发布于 2018-02-28 10:17:12

就像这样:

代码语言:javascript
复制
SELECT my_columns 
FROM A
LEFT JOIN B ON A.InfoID = B.InfoID and A.type=1
LEFT JOIN C ON A.InfoID = C.InfoID and A.type <> 1

对于这些列,您可以使用CASE /在这样的情况下:

代码语言:javascript
复制
SELECT A.InfoId, 
MAX(CASE A.type = 1 THEN B.StudentID ELSE C.EmployeeID END) AS 'Employee/Student Id'
MAX(CASE A.type = 1 THEN B.Name ELSE C.Name END) AS 'Name'
MAX(CASE A.type = 1 THEN B.Course ELSE C.Company END) AS 'Company/Course'
FROM A
LEFT JOIN B ON A.InfoID = B.InfoID and A.type=1
LEFT JOIN C ON A.InfoID = C.InfoID and A.type <> 1
GROUP BY A.InfoID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49025753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档