当前位置: 代码迷 >> Sybase >> 请教下面两种情况的查询语句该如何写
  详细解决方案

请教下面两种情况的查询语句该如何写

热度:2399   发布时间:2013-02-26 00:00:00.0
请问下面两种情况的查询语句该怎么写?
有A(ID,NAME,DESCRIB)、B(IP,TYPE,VALUE)两个表,其中B表中IP和TYPE是联合主键,我想查询所有表A中的记录,同时根据表A中每条记录的ID值和指定的条件在B表中查询一条记录,条件为:IP= 2 and B.TYPE = A.ID,再将查询出B中记录的字段和A中对应字段组成一条下面的字段:
A.ID, A.NAME, A.DESCRIB, B.IP, B.VALUE
比如:
A:
1001 aa asd
1002 bb bcd
1003 cc asd
B:
1 1001 100100
2 1001 100101
3 1001 100102
1 1002 200100
2 1002 200101
3 1002 200102
1 1003 300100
2 1003 300101
3 1003 300102
1 1004 400100
2 1004 400101
3 1004 400102

最终得到:
1001 aa asd 2 100101
1002 bb bcd 2 200101
1003 cc asd 2 300101

另外,我如果想对表中所有符合条件记录的某字段值加一个数,比如上面B表中所有TYPE值为1001的记录的VALUE值全部加1000,变成:
1 1001 101100
2 1001 101101
3 1001 101102
请问有没有这种SQL语句?

------解决方案--------------------------------------------------------
引用最终得到:
1001 aa asd 2 100101
1002 bb bcd 2 200101
1003 cc asd 2 300101

------解决方案--------------------------------------------------------
一楼的语句少了个条件

应该是
SQL code
select a.ID,a.NAME,a.DESCRIB,b.IP,v.VALUEfrom A inner join B on a.ID=b.TYPEwhere b.IP= 2
------解决方案--------------------------------------------------------
引用另外,我如果想对表中所有符合条件记录的某字段值加一个数,比如上面B表中所有TYPE值为1001的记录的VALUE值全部加1000,变成:
1 1001 101100
2 1001 101101
3 1001 101102
请问有没有这种SQL语句?
  相关解决方案