select a.*,e.number from a left join (select c.cid,c.bid,sum(number) as number from c where c.bid in (select a.*,b.* from a ,b where a.code = b.code) group by c.cid,c.bid) e on a.bid = e.bid大概就是这样的吧
(select c.cid,c.bid,sum(number) as number from c where c.bid in (select a.*,b.* from a ,b where a.code = b.code) group by c.cid,c.bid) e应当修正并简化为 (select bid,sum(number) as number from c group by c.bid) e另外,lz没有明确说出B表中,code与bid是否1-1关系 如果是 整个语句似乎应当为: select a.*,e.number from a inner join b On a.code=b.code left join (select bid,sum(number) as number from c group by c.bid) e on b.bid = e.bid
标准答案: SELECT a.*, e.number FROM a, b, (SELECT c.bid, SUM(number) AS number FROM c GROUP BY c.bid )AS e WHERE a.code = b.code AND b.bid = c.bid
(select bid,sum(number) as number from c group by c.bid) e另外,lz没有明确说出B表中,code与bid是否1-1关系
如果是
整个语句似乎应当为:
select a.*,e.number from a inner join b On a.code=b.code
left join (select bid,sum(number) as number from c group by c.bid) e on b.bid = e.bid
SELECT a.*, e.number
FROM a, b,
(SELECT c.bid, SUM(number) AS number FROM c GROUP BY c.bid )AS e
WHERE a.code = b.code
AND b.bid = c.bid