SQL根據表中某列隊值選擇關聯不同的表

2021-06-04 22:19:34 字數 909 閱讀 3689

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的值選擇不同的列並重命名

SQL使用join根據某列合併表

資料庫如下 下表是使用者 user 表 下表是使用者組 usergroup 表 在user表中usergroupid我們需要通過usergroup表獲取usergroupname使用者組名,並且還要從user表獲取creater建立人和changer修改人 這裡中user表是基礎表,其他表都是 服務...

sql根據資料庫內的值選擇字段

應用需求 乙個表裡面有code1,code2,code3,code4,code5,值從0000到0999不等。使用者要求select出第乙個值不是0000的code,即 如果表裡的記錄是 0000,0000,0303,0000,null,則應該select出欄位code3。sql select er...

根據表中某列去除重複的行

根據表中某列 或者某些列 去除重複的行 例如有表a,有兩行相同的cardid,我們只要隨機的某一行 drop table a drop table b create table a cardid varchar 100 cardcode varchar 100 insert into a cardi...