SELECT
A.songcode,
A.songname,
B.text AS songlanguage,
A.songlen,
C.text AS songtype,
D.name AS singer,
E.name AS singer2,
F.name AS singer3,
G.name AS singer4
FROM Song AS A
LEFT JOIN e_SongLanguane AS B
ON A.songlanguage=B.id
LEFT JOIN e_SingType AS C
ON A.songtype=C.id
LEFT JOIN singer AS D
ON A.singer=D.code
LEFT JOIN singer AS E
ON A.singer2=E.code
LEFT JOIN singer AS F
ON A.singer3=F.code
LEFT JOIN singer AS G
ON A.singer4=G.code
A.songcode,
A.songname,
B.text AS songlanguage,
A.songlen,
C.text AS songtype,
D.name AS singer,
E.name AS singer2,
F.name AS singer3,
G.name AS singer4
FROM Song AS A
LEFT JOIN e_SongLanguane AS B
ON A.songlanguage=B.id
LEFT JOIN e_SingType AS C
ON A.songtype=C.id
LEFT JOIN singer AS D
ON A.singer=D.code
LEFT JOIN singer AS E
ON A.singer2=E.code
LEFT JOIN singer AS F
ON A.singer3=F.code
LEFT JOIN singer AS G
ON A.singer4=G.code
SELECT
A.songcode,
A.songname,
B.text AS songlanguage,
A.songlen,
C.text AS songtype,
D.name AS singer,
E.name AS singer2,
F.name AS singer3,
G.name AS singer4
FROM Song AS A
LEFT JOIN e_SongLanguane AS B
ON A.songlanguage=B.id
LEFT JOIN e_SingType AS C
ON A.songtype=C.id
LEFT JOIN singer AS D
ON A.singer=D.code
LEFT JOIN singer AS E
ON A.singer2=E.code
LEFT JOIN singer AS F
ON A.singer3=F.code
LEFT JOIN singer AS G
ON A.singer4=G.code
isnull(e.name,'') as singer2,isnull(f.name,'') as singer3,isnull(g.name,'') as singer4
From Song a
left join e_SongLanguage b on a.songlanguage=b.id
left join e_SingType c on a.songtype=c.id
left join singer d on a.singer=d.code
left join singer e on a.singer2=e.code
left join singer f on a.singer3=f.code
left join singer g on a.singer4=g.code
(
songcode int,
songname varchar(50),
songlanguage varchar(20),
songtype varchar(20),
singer varchar(30),
singer2 varchar(30),
singer3 varchar(30),
singer4 varchar(30)
)
insert into Song select 1001,'冰雨','10008','80008','900001',null,null,null
union all select 1002,'吻别','10008','80009','900002','900003',null,null
union all select 1002,'沉默是金','10009','80009','900004','900005',null,null
union all select 1002,'朋友','10008','80008','900006',null,null,null
union all select 1002,'老鼠爱大米','10008','80009','900006','900001','900007','900002'
create table Singer
(
Code varchar(30),
[Name] varchar(30)
)
insert into Singer select '900001','刘德华'
union all select '900002','张学友'
union all select '900003','迪克牛仔'
union all select '900004','许冠杰'
union all select '900005','张国荣'
union all select '900006','周华健'
union all select '900007','阿杜'create table e_SongLanguage
(
ID varchar(20),
[Text] varchar(20)
)
insert into e_SongLanguage select '10008','国语'
union all select '10009','粤语'
union all select '10010','英语'create table e_SingType
(
ID varchar(20),
[Text] varchar(20)
)
insert into e_SingType select '80008','独唱'
union all select '80009','合唱'
union all select '80010','其它'
songcode int,
songname varchar(50),
songlanguage varchar(20),
songtype varchar(20),
singer varchar(30),
singer2 varchar(30),
singer3 varchar(30),
singer4 varchar(30)
select S.songcode,S.songname,E.[Text],T.[Text],S1.[Name],S2.[Name],S3.[Name],S4.[Name]
from Song S left join e_SongLanguage E on S.songlanguage=E.ID left join e_SingType T on S.songtype=T.ID left join Singer S1 on S.singer=S1.Code left join Singer S2
on S.singer2=S2.Code left join Singer S3 on S.singer3=S3.Code left join Singer S4 on S.singer4=S4.Codesongcode songname Text Text Name Name Name Name
----------- -------------------------------------------------- -------------------- -------------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------
1001 冰雨 国语 独唱 刘德华 NULL NULL NULL
1002 吻别 国语 合唱 张学友 迪克牛仔 NULL NULL
1002 沉默是金 粤语 合唱 许冠杰 张国荣 NULL NULL
1002 朋友 国语 独唱 周华健 NULL NULL NULL
1002 老鼠爱大米 国语 合唱 周华健 刘德华 阿杜 张学友(5 行受影响)
(
songcode int,
songname varchar(50),
songlanguage varchar(20),
songtype varchar(20),
singer varchar(30),
singer2 varchar(30),
singer3 varchar(30),
singer4 varchar(30)
)
insert into Song select 1001,'冰雨','10008','80008','900001',null,null,null
union all select 1002,'吻别','10008','80009','900002','900003',null,null
union all select 1003,'沉默是金','10009','80009','900004','900005',null,null
union all select 1004,'朋友','10008','80008','900006',null,null,null
union all select 1005,'老鼠爱大米','10008','80009','900006','900001','900007','900002'
create table Singer
(
Code varchar(30),
[Name] varchar(30)
)
insert into Singer select '900001','刘德华'
union all select '900002','张学友'
union all select '900003','迪克牛仔'
union all select '900004','许冠杰'
union all select '900005','张国荣'
union all select '900006','周华健'
union all select '900007','阿杜'create table e_SongLanguage
(
ID varchar(20),
[Text] varchar(20)
)
insert into e_SongLanguage select '10008','国语'
union all select '10009','粤语'
union all select '10010','英语'create table e_SingType
(
ID varchar(20),
[Text] varchar(20)
)
insert into e_SingType select '80008','独唱'
union all select '80009','合唱'
union all select '80010','其它'
songcode int,
songname varchar(50),
songlanguage varchar(20),
songtype varchar(20),
singer varchar(30),
singer2 varchar(30),
singer3 varchar(30),
singer4 varchar(30)
select S.songcode,S.songname,E.[Text],T.[Text],S1.[Name],S2.[Name],S3.[Name],S4.[Name]
from Song S left join e_SongLanguage E on S.songlanguage=E.ID left join e_SingType T on S.songtype=T.ID left join Singer S1 on S.singer=S1.Code left join Singer S2
on S.singer2=S2.Code left join Singer S3 on S.singer3=S3.Code left join Singer S4 on S.singer4=S4.Code
songcode songname Text Text Name Name Name Name
----------- -------------------------------------------------- -------------------- -------------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------
1001 冰雨 国语 独唱 刘德华 NULL NULL NULL
1002 吻别 国语 合唱 张学友 迪克牛仔 NULL NULL
1003 沉默是金 粤语 合唱 许冠杰 张国荣 NULL NULL
1004 朋友 国语 独唱 周华健 NULL NULL NULL
1005 老鼠爱大米 国语 合唱 周华健 刘德华 阿杜 张学友(5 行受影响)