日期:2014-05-18  浏览次数:20523 次

5个表的连接查询
5个表是关于厂商和商品的:
厂商的2个,一个是厂商类别表:factorytype;另一个是厂商明细表:factory; 显然,二表有主/外键对应,并都有各自的ID和name字段;商品的同原理,goodstype和goods;字段亦同,

还有一个是厂商商品对照表fac_goods.有fac_id对应着fatory的ID,good_id对应着goods的ID,

现在给一厂商的ID或商品的ID要查出厂商和商品各自的ID和name(包括厂商和商品类别的ID和name),请问这SQL如何写?另外子查询可以不,如果可以那哪种比较好一些......

------解决方案--------------------
SQL code
select 
    *
from 
    fac_goods  a
join
    factory  b on a.fac_id =b.ID
join
    goods c on b.good_id=c.ID
join
    factorytype  d on d.ID=b.factorytypeID--主/外键对应 ID
join
    goodstype  e on e.ID=c.goodstypeID--主/外键对应 ID 
where
    fac_id =''--条件
or
    good_id =''--条件

------解决方案--------------------
select a.fac_id,--厂商id
ba.name,--厂商名称
ba.typeid,
bb.name,--厂商类别名称
a.good_id,--商品id
ca.name, --商品名称
ca.typeid,
cb.name --商品类别名称
from fac_goods a,factory ba,factorytype bb,
goods ca,goodstype cb
where a.fac_id=ba.id 
and ba.typeid=bb.id --ba.typeid 为factory中的厂商类别id字段 
and a.good_id=ca.id
and ca.typeid=cb.id --ca.typeid为goods表中商品类别字段