数据库高手请近来:数据表关联显示的问题?想了几天了:((150分)

夜鹰

Unregistered / Unconfirmed
GUEST, unregistred user!
Employee 员工表
[EID] [int] NOT NULL , 业务员编码
[ELook] [varchar] (10) NULL , 登录用ID
[EName] [varchar] (10) NOT NULL , 业务员姓名
[EPass] [varchar] (10) NOT NULL , 登录密码
[ERight] [char] (1) NOT NULL , 登录权限
Client 客户表
[CID] [int] NOT NULL , 客户编号
[Company] [varchar] (50) NOT NULL , 公司名称
[HeadID] [int] NOT NULL , 总部编码(关联本表CID)
[EID] [int] NOT NULL , 业务员编码
要求:
1。在显示CLIENT数据的时候,能够显示员工姓名,总部名称
2。可以很方便的插入,修改,删除CLIENT表数据(操作后可以看到员工姓名,总部名称)
3。尽量不要修改表结构。
 
这个简单,那个view就搞定了,
修改删除就updatesql.
 
设计时在与Client表相连的ataset中加入LOOKUP 型字段.
 
先用還是用view
第2點問題,你只需要讀出數據.可以用label之類,不需要用數據庫連接
 
sql:='select employee.ename,cid,company,headid,eid,head.headname from employee
where emplyee.eid=client.eid and client.cid=head.cid';
 
可能是要求没有说清楚:
我在查询CLIENT数据表的时候,Client数据表中EID字段可能有值也可能没值,这两种情况
都要考虑到,另外,总部的显示也是这两种情况(没有值的情况显示为NULL)

SELECT Client1.Company AS HeadCompany, Client.*, Employee.EName
FROM Client LEFT OUTER JOIN
Employee ON Client.EID = Employee.EID LEFT OUTER JOIN
Client Client1 ON Client.CID = Client1.HeadID

此查询可以在MS SQL7中实现以上的要求,但只能浏览,达不到要求,还请好手多多发言
 
用左(右)外连接:
select employee.ename,cid,company,headid,eid,head.headname from employee
where client.eid*=emplyee.eid and client.cid*=head.cid
 
多人接受答案了。
 
顶部