有两张表,表A中的主键是表B的外部键
如 表A[院系代码(主键),院系名称]
   表B[专业代码(主键),专业名称,学制,院系代码(外键)]想在一张DBGrid中显示 [专业代码,专业名称,学制,院系代码,院系名称]该怎么做啊??如果ADOQuery.SQL.ADD('select * from B');则显示不出院系名称
如果做一个A和B的视图X 并ADOQuery.SQL.ADD('select * from X');这么一来,如果想删除B中一条记录,则表A中的相应记录也会被删除了……我也想过在表B中加入‘院系名称’这个字段,但这么一来好象就不符合第3范式了,如果按这个方法,具体应该怎么操作啊?请帮帮忙~~谢谢!

解决方案 »

  1.   

    在数据库中用视图,不要在程序中进行关联。主表 left outer join 从表 where 主.院系代码=从.院系代码
      

  2.   

    SELECT 专业代码,专业名称,学制,A.院系代码,院系名称 FROM A,B WHERE A.院系代码=B.院系代码
      

  3.   

    select 专业代码,专业名称,学制,A.院系代码 as 院系代码,A.院系名称 as 院系名称
    From A,B
    where A.院系代码=B.院系代码
    在视图中删除数据有很多限制,看一下数据库方面的书