gpt4 book ai didi

mysql - 一张表与两张不同表的关系

转载 作者:行者123 更新时间:2023-11-29 17:54:03 25 4
gpt4 key购买 nike

表A中有一个属性告诉它会获取哪个表。

<小时/>

例如:

表 A(信息)

 InfoID | Type 

表 B(学生)

 StudentID | Name | Course |

表 C(员工)

 EmployeeID | Name | Company |
<小时/>

如果 type = 1,则获取表 B(学生)中的信息

InfoID | StudentID | Name | Course

否则获取表 C(员工)中的信息

InfoID | EmployeeID| Name | Company

最佳答案

类似的事情:

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/WHEN :

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

关于mysql - 一张表与两张不同表的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49025753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com