免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1426 | 回复: 0
打印 上一主题 下一主题

请问大家一个用SQL关联表格的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-02-03 17:49 |只看该作者 |倒序浏览
现在有如下三张表格:



  1. cdr_ewan=# select * from i;
  2. id | cic  |    cgnum
  3. ----+------+-------------
  4.   0 | 1000 | 13100000000
  5.   0 | 1000 |
  6.   0 | 2000 | 13200000000
  7.   0 | 2000 |
  8.   0 | 3000 | 13300000000
  9.   0 | 3000 |
  10. (6 rows)

  11. cdr_ewan=# select * from h;
  12. id | tdm
  13. ----+------
  14.   0 | 1000
  15.   0 | 1000
  16.   0 | 2000
  17.   0 | 2000
  18.   0 | 3000
  19.   0 | 3000
  20. (6 rows)

  21. cdr_ewan=# select * from s;
  22.   id  |    cgnum
  23. ------+-------------
  24. 1111 | 13100000000
  25. 1111 |
  26. 2222 | 13200000000
  27. 2222 |
  28. 3333 | 13300000000
  29. 3333 |
  30. (6 rows)

复制代码


想将前两张表格里的id通过表格三的id赋值(表格s里面的每一个cgnum唯一对应一个id)。

s.13100000000---->;i.cgnum=13100000000's cic=1000
然后将表格i中的所有cic为1000的行的id赋成1111

想请问大家怎样写个程序或几个语句将前两张表格的id赋值?(可以肯定开始之前前两张表格的id都为0,)

生成这三张表格的SQL代码如下:



  1. DROP TABLE i;
  2. DROP TABLE h;
  3. DROP TABLE s;

  4. CREATE TABLE i (
  5.         id                int,
  6.         cic                varchar(4),
  7.         cgnum                varchar(18)
  8. );

  9. CREATE TABLE h (
  10.         id                int,
  11.         tdm                varchar(4)
  12. );

  13. CREATE TABLE s (
  14.         id                int,
  15.         cgnum                varchar(18)
  16. );

  17. INSERT INTO i VALUES(0, '1000', '13100000000');
  18. INSERT INTO h VALUES(0, '1000');
  19. INSERT INTO s VALUES(1111, '13100000000');
  20. INSERT INTO i VALUES(0, '1000', '');
  21. INSERT INTO h VALUES(0, '1000');
  22. INSERT INTO s VALUES(1111, '');

  23. INSERT INTO i VALUES(0, '2000', '13200000000');
  24. INSERT INTO h VALUES(0, '2000');
  25. INSERT INTO s VALUES(2222, '13200000000');
  26. INSERT INTO i VALUES(0, '2000', '');
  27. INSERT INTO h VALUES(0, '2000');
  28. INSERT INTO s VALUES(2222, '');

  29. INSERT INTO i VALUES(0, '3000', '13300000000');
  30. INSERT INTO h VALUES(0, '3000');
  31. INSERT INTO s VALUES(3333, '13300000000');
  32. INSERT INTO i VALUES(0, '3000', '');
  33. INSERT INTO h VALUES(0, '3000');
  34. INSERT INTO s VALUES(3333, '');

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP