为了表达清楚 ,我将表简化了,仓库表a有id,p_ck两个字段,p_ck是父仓库id,比如
id     p_ck
1       9
9       9
那么id为1的仓库他的父仓库id就是9,id为9的仓库他的父仓库就是本身,
库存表b也有两个字段,ck_id ,sl(数量), ck_id就是a表的id,问题是:
我要查询出所有仓库以及它的父仓库在b表中的sl,sql语句应该怎么写?

解决方案 »

  1.   

    如果 父仓库不是递归的话:
    SELECT * FROM `table_b` WHERE ck_id = ( select p_ck from table_a where id =1) or ck_id = ( select id from table_a where id =1) 
    但是 效率肯定不高 期待楼下
      

  2.   

    一张表里的话 不好查询的
    我建议是这样
    仓库表一个       可以有多个仓库
    区域表一个       可以有多个区域(也可以理解为仓库) 与仓库表多对一关系
    库存表一个       里面存放区域主键就okLZ这样试一下
      

  3.   

    select * form tabel1 left join table2 on table1.id=table2.id