求个sql语句,该如何处理

求个sql语句
table   A(int   aid,string   aname)
table   B(int   bid,int   cid,string   bname)
table   C(int   cid,string   cname)
table   D(int   did,int   aid,int     bid)

表A,B,C,D第一列都是主键

求个sql语句
当did=XXX时
select出如下的行集
(did,aname,bname,cname)

------解决方案--------------------
select d.did,a.aname,b.bname,c.cname from d
inner join a on d.aid=a.aid
inner join b on d.bid=b.bid
inner join c on c.cid=b.cid
------解决方案--------------------
select D.bid,A.aname,T.bname,T.cname
from A,D,
(
select B.bid,B.bname,C.cname
from B,C
where B.cid=C.cid
) T
where A.aid=D.aid
and B.bid=D.bid

------解决方案--------------------
select did,aname,bname,cname
from D
inner join A on D.aid=A.aid
inner join
(
select B.*,C.cname from B inner join C on B.cid=C.cid
)t
on D.bid=t.bid
=====================================
select did,sum(D.price),sum(t.price)
from D
inner join
(
select B.*,C.price from B inner join C on B.cid=C.cid
)t on D.bid=T.bid
where did=XXX
group by did
不知道要哪個price sum