SQL语句问题,100分!!!

来源:百度知道 编辑:UC知道 时间:2024/06/03 13:58:33
有两个表A B
A表如下
ID NAME
---------
11 张三
12 李四
13 王五

B表如下
ID USERID MSG
-------------------
21 11 的消息1
22 11 的消息2
23 12 的消息3
24 12 的消息4
25 13 的消息5
26 13 的消息6

通过SELECT可以获得
"消息编号21,来自张三的消息1"
"消息编号23,来自王五的消息3"

我采用的是方法是
select A.NAME , B.ID , B.MSG FORM A,B WHERE A.ID = B.USERID AND B.ID = 21

在C#中我用 消息编号B.ID,来自A.NAME B.MSG 标示数据

有没有更简单的方法?不用在两个表中查询?
除了改动数据表结构外,其他的方法???

******************
直接在sql中的得到你想要的结果,不用再c#中再度拼接。
******************
oracle中:
select '消息编号'||B.ID||',来自'||A.NAME||B.MSG from A inner join B on A.ID = B.USERID where B.ID = 21;

实施log:
[TEST@ORA1] SQL>select '消息编号'||B.ID||',来自'||A.NAME||B.MSG from A inner joi
n B on A.ID = B.USERID;

'消息编号'||B.ID||',来自'||A.NAME||B.MSG
----------------------------------------------------------------
消息编号21,来自张三的消息1
消息编号22,来自张三的消息2
消息编号23,来自李四的消息3
消息编号24,来自李四的消息4
消息编号25,来自王五的消息5
消息编号26,来自王五的消息6

sqlserver中:
select '消息编号'+convert(char(2),B.ID)+',来自'+A.NAME+B.MSG from A inner join B on A.ID = B.USERID where B.ID = 21;

实施log是图片没办法粘贴了,效果和oracle的实施效果是一样的。

说明:[convert(char(2),B.ID)]的意思是把B.ID转换成char型占两位,你根据自己的情况调整一下就可以了。如果[B.ID]本身就是char型的话,[convert]可以不要。

*************************************************
补充:数据做