1.我们有表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_num WHEN 0 THEN Table2.name WHEN 1 THEN Table3.name ELSE '' END) AS name
FROM Table2 RIGHT OUTER JOIN
Table1 ON Table2.id = Table1.aid LEFT OUTER JOIN
Table3 ON Table1.aid = Table3.id
即可。
以上思路是根据表1中的based_num的值选择不同的列并重命名