好像用Left/Right Join语句可以,谁能说说这怎么用?

解决方案 »

  1.   

    学了想了几个小时,终于搞出一个办法,不过好麻烦,要创建两个临时表
    表t1: SELECT 名称,SUM(数量) AS 合计 FROM 入货表 GROUP BY 名称;
    表t2: SELECT 名称,SUM(数量) AS 合计 FROM 出货表 GROUP BY 名称;
    SELECT t1.名称,(t1.合计-t2.合计) AS 库存数 LEFT JOIN t2 USING(名称);????????有没有更简单快速的方法呢各位?????????????
    谢谢!
      

  2.   

    SELECT SUM(入货表.数量) - SUM(出货表.数量) FROM 入货表,出货表
    WHERE 入货表.名称 = 出货表.名称;
      

  3.   

    好办.
    SELECT SUM(入货表.数量) - SUM(出货表.数量) FROM 入货表
    LEFT JOIN 出货表 ON 入货表.名称 = 出货表.名称
    ;
      

  4.   

    这样出现语法错误,因为没有Group By语句....
    就算有Group By,算出来的结果也是错误的,因为入货表里面出现多次a,Left Join会将出货表的a关联多次,如"select * from 入货表 left join 出货表 on 入货表.名称 = 出货表.名称"返回的记录是:
    名称    数量   |  名称     数量
    a       10        a       2
    a       10        a       7
    b       10        b       5
    c       10        null    null
    a       10        a       2
    a       10        a       7
    ================
    MySql计算a的库存时:
    SUM(入货表.数量)=40
    SUM(出货表.数量)=18
    结果a的库存是40-18=22是错误的...
      

  5.   

    还真不好办...
    本来是两个表一个UNION关系.
    但是由于不能使用子查询,在UNION以后并不能进行SELECT操作.
    的确伤脑筋.
      

  6.   

    是不可能的
    mysql不支持子查询
      

  7.   

    我在MIS项目中遇见过你一样的问题我先UNION一下
    在分别去运算的,
      

  8.   

    谢谢大家的支持,看来还是没有更简单的方法~~不知Mysql什么时候支持子查询呢~~