SQL 根据表中某列队值选择关联不同的表
为了尊重原来作者的将连接及内容附上,后面附上我的测试及原来的解决办法。
来源:hp://blog.163.com/chiyunjuan@126/blog/stac/34119412201341634750537/
.我们有表 1,表 2,表 3,需要根据表 1 中某字段的值的不同分别与表 2 表 3 关联
表 1 结构为:
Table1
字段:id based_num aid
1 0 33
2 1 22
Table2
字段:id name
33 校长
Table3
字段:id name
22 学生
需要当 table1 中的 based_num 为 0 时,aid 与表 2 的 id 关联 当 based_num 为 1 时,aid 与表 3 的 id 关
联 得出结果为:
字段:id based_num aid name
1 0 33 校长
2 1 22学生
SQL 语句为:
SELECT Table1.id, Table1.based_num,Table1.name, (CASE based_numWHEN 0 THEN Table2.name
WHEN 1 THEN Table3.name ELSE '' END) AS username
FROM Table2 RIGHT OUTER JOIN Table1 ON Table2.id = Table1.aid LEFT OUTER JOIN Table3 ON
Table1.aid = Table3.id
即可。