LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 888|回复: 0

请教一个用SQL语言关联表格的问题

[复制链接]
发表于 2005-2-3 17:36:02 | 显示全部楼层 |阅读模式
现在有如下三张表格:



  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, '');

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

本版积分规则

快速回复 返回顶部 返回列表