环境:SQL SERVER2005个人版,在最后多表查询时搞了好久,想想这个东东以后可能有用。先记下!
sql 代码
 
  1. create database test;  
  2.   
  3. use test;  
  4.   
  5. DROP TABLE IF EXISTS addresses;  
  6.   
  7. /*地址表*/  
  8. create table addresses(  
  9. id int primary key identity,  
  10. address varchar(20) not null,/*地址*/  
  11. zipcode int/*邮编*/  
  12. );  
  13.   
  14. DROP TABLE IF EXISTS  family;  
  15.   
  16.   
  17. /*家庭表*/  
  18. create table family(  
  19. id int unique identity not null,  
  20. name varchar(20),   /*家长名*/  
  21. address_id int  not null, /*地址ID*/  
  22. primary key(id) ,  
  23. constraint family_address foreign key(address_id) references addresses(id)  
  24. );  
  25.   
  26. DROP TABLE IF EXISTS person;  
  27. /*个人信息表*/  
  28. create table person(  
  29. id int primary key identity,  
  30. family_id int  not null, /*家庭ID*/  
  31. com_address_id int  not null,/*公司地址ID*/   
  32. name varchar(20) not null,/*姓名*/  
  33. sex varchar(5)not null,/*性别*/  
  34. constraint person_family_address foreign key(family_id) references family(id),  
  35. constraint person_complay foreign key(com_address_id) references  addresses(id)  
  36. )  
  37.   
  38.   
  39. /*查看个人家庭信息*/  
  40.   
  41. select person.name as '姓名', person.sex as '性别',family.name as '家长名',  
  42. addresses.address as '家庭住址' ,B.address as '公司地址'  
  43. from person,addresses,family,   
  44. (select addresses.id,addresses.address from person,addresses 
  45. where addresses.id=person.com_address_id)B  
  46. where  
  47.     addresses.id=family.address_id  and family.id=person.family_id  
  48.     and person.com_address_id=B.id;  
评论
发表评论

您还没有登录,请登录后发表评论

heshencao
搜索本博客
最近加入圈子
存档
最新评论