sql三张表联合查询

有三张表
表 a
id,name,kind
表 b
id,fb_id,num,price
表 c
fb_id,fb_name
现要查询数据为:
name,kind,fb_name,num,price 以及num和price 的乘积,但给定fb_id比如说fb_id=27
不知道如何写查询条件,试过很多次了,还是不行!

不特定fb_id的情况下以及成功了。想各位求助!

第1个回答  2013-01-17
SELECT A.*,B.*,C.*
FROM A JOIN B ON B.AID=A.AID JOIN C ON C.AID=A.AID;追问

要某项等于特定值的呀,这个怎么写,直接写等于多少,是不对啊的

追答

你的a表跟其他两张表的外键在哪里?

追问

a表和B表有联系,b表和C表有联系,a和c没有直接联系,这样难道不行的?

追答

就是问你a,b表的联系是哪个字段,你的贴子中,没有看出来

追问

a 和b 是id 啊~~b和c是fb_id 啊。要求fb_id=27 啊

追答

SELECT a.name,a.kindc,c.fb_name,b.num,b.price,b.num*b.price
FROM a JOIN b on a.id= b.id join c on c.fb_id=b.fb_id

追问

这个已经成功了的,但是还要有个要求就是fb_id=27 这个不知道怎么写。

追答

SELECT a.name,a.kindc,c.fb_name,b.num,b.price,b.num*b.price
FROM a JOIN b on a.id= b.id join c on c.fb_id=b.fb_id
WHERE b.fb_id=27

第2个回答  2013-01-27
select name,kind,fb_name,num,price ,num*price from a a left join b b on a.id=b.id left join c c on c.fb_id=b.fb_id where b.fb_id='27'
第3个回答  2013-01-17
你可以试下打开表,将fb_id 的值改为27,用你已经成功的语句再试一次
第4个回答  2013-01-17
在不特定fb_id的基础上,加上条件 and c.fb_id=27
第5个回答  2013-01-17
直接给出sql server语句吧

select e.name,e.kind,f.fb_name,g.num,g.price ,g.num*g.price from a as e inner join

b as f on e.id=b.id left join c as g on f.fb_id=g.fb_id where g.fb_id=27本回答被网友采纳