1、有问题2可以看出怎么关联。
2、select c.*,a.zlmc from 货物种类表 a,货物明细表 b,日常支出表 c
where a.bh=c.bh
and b.bh=c.bh          ---这两个条件是关联条件
and c.gmr='张三'
and c.gmsj>='2002-1-1' and c.gmsj<'2002-1-10'
and a.zlmc='办公用品'
3、我认为表结构设计并无不妥,日常支出表可能是写少了数量,价格应该是单价,货物明细表可能需要单位等信息。
关键字货物明细表、货物种类表是bh,日常支出表是(bh,gmsl,gmr)

解决方案 »

  1.   

    表结构设计应该有问题吧。既然存在货物明细表,而在日常支出表中为什么表示货物的是货物名称而不是货物ID呢?那两张表之间的主键和外键应该怎样建立呢?我认为日常支出表中出现的应该是货物ID而不是货物名称。而且货物明细表应该还加上一个货物种类ID,如果不这样你怎么知道你货物明细表中的货物属于那一种货物呢?难道每一种货物另建一张表?还有日常支出表应该加上个数量记录用户每次所购入的货品数量。货物明细表中确实是需要一个单位的字段,因为有些货物的单位是不确定的。还有你三个表中的编号应该改下名,关键字货物明细表是货物编号,货物种类表是种类编号,日常支出表是用户编号。建议表名和字段名都用英文吧,这样比较规范。SQL语句为:select *
    from 货物明细表 as a inner join 日常支出表 as b 
         on a.hpid=b.hpid
    where a.gmr ='张三'
          and a.hpid=hpid(所购买的货品id)
      

  2.   

    Haiwer &Lzh_lee(阿飞) :
    你们说的非常谢谢!.其中有讲到:"那两张表之间的主键和外键应该怎样建立",我不明白!"外键"是如何设计的?其什么的作用?
    另外关联的是如何做?起什么的作用?如何用SQL语法创建这三个TABLE?其中包括创建主键、关联和外键?
    谢谢!
      

  3.   

    按照阿飞的设计可能更好一些,我写了前两个表的建表语句,第三个表你照猫画虎:CREATE TABLE hwzlb (
             zlId   int not null,
             zlmc char(8) not null,
    CONSTRAINT PK_hwzlb  PRIMARY KEY  CLUSTERED 
    (
    zlId
    )
    )
    go
    CREATE TABLE hwlbb (
             bh   int not null,
             mxmc char(8) not null,
             zlid int not null
    CONSTRAINT PK_hwlbb  PRIMARY KEY  CLUSTERED 
    (
    bh
    ),
    CONSTRAINT FK_hwlbb_zlid FOREIGN KEY 
    (
    zlid
    ) REFERENCES hwzlb (
    zlid
    )
    )
    go注意,第三个表的bh 应该参照第二个表的bh ,mxmc字段不应该要了。