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...