求循环查询赋值SQL语句!在线等~!

两个表:把查询selecttagastagsfromdedejcw_taglistwhereaid='11350'返回多个值,同一aid多个不同tags值(比如:返回三个... 两个表:把查询select tag as tags from dedejcw_taglist where aid='11350'
返回多个值,同一aid多个不同tags值(比如:返回三个值:都是同一aid,不同tags值),插入到另一表对应的aid字段中的字段kewords中,唯一值。
顺便写个循环语句,一次性执行完,谢谢~!
语句是要在mysql中执行的。
问题描述:
两个表:第一个表:查询字段tag的值:表的设置为:aid有相同(aid为另一表主键)对应的tag值不同
第二个表:主键id即表一的aid,字段keword
要求:根据表二的aid主键唯一性,把查询表一的tag值插入到表二的kewoed字段。

第二个表:主键id即表一的aid
麻烦看明白点~!

再描述:
select tag as tags from dedejcw_taglist where aid='11350'
这个aid就是表二的主键,有很多数据
要求根据这个查询结果(查询表一的结果为多条记录)一一插入到表二字段keyword中
两个表的关系就是aid=id关联在。

回复 rjiang2008 的回答
表一的查询是你那样的
要求是把这个查询结果全部插入到表二里,用“,”分割,表一的aid即是表二的id,id唯一性,根据这个插入
写循环查询语句

两个表
表1
aid tag
1 文字1
1 文字2
1 文字3
2 文字5
2 文字6
2 文字7
表2 id为主键
id keywords
1
2
3
实现结果在表2里面
id keywords
1 文字1,文字2,文字3
展开
 我来答
百度网友866da84
2009-05-21 · TA获得超过368个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:0
展开全部
ALTER PROCEDURE p_test AS
declare @tags varchar(10)
declare @ret varchar(50)
declare @aid int
declare cur_aid cursor for select distinct aid from dedejcw_taglist
open cur_aid
fetch next from cur_aid into @aid
while @@fetch_status = 0
begin
set @ret = ''
declare cur_tags cursor for select tag from dedejcw_taglist where aid = @aid
open cur_tags
fetch next from cur_tags into @tags
while @@fetch_status = 0
begin
set @ret = @ret +@tags + ','
fetch next from cur_tags into @tags
end
close cur_tags
deallocate cur_tags
update dedejcw_archives
set keywords = substring(@ret,1,len(@ret)-1)
where id = @aid
fetch next from cur_aid into @aid
end
close cur_aid
deallocate cur_aid
C_LIFEI
2009-05-21 · TA获得超过800个赞
知道小有建树答主
回答量:431
采纳率:0%
帮助的人:349万
展开全部
我是用C语言访问数据,不知道你要求用什么的,应该这些是类似的吧。
// 定义一个数据库连接句柄,配置数据库连接(根据你的要求)
MYSQL msConn;
...
// 从表中获得查询结果集
mysql_query(&msConn, "select tag as tags from dedejcw_taglist where aid='11350' ")

// 处理结果集
MYSQL_RES* msRes;
// 一行记录
MYSQL_ROW row;
msRes = mysql_use_result(&mySqlhwd);
// 依次获得结果集中的每一行
char* chKeyValue ;
while(row = mysql_fetch_row(msRes))
{
// 获得你说的"kewoed"(你看一下你表的结构,kewoed索引是多少 假设为0)
chKeyValue = row[0];

// 获得kewoed后就可以插入了
...
}

// 释放选择集
mysql_free_result(msRes);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qizhuganji
2009-05-21 · TA获得超过375个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:138万
展开全部
如果是楼主这样的话,那表二就完全没有必要创建了,可以使用视图代替。
具体实现如下:
create FUNCTION [dbo].[f_GetTag](@aid nvarchar(50))
RETURNS nvarchar(100)
AS
BEGIN
DECLARE @re nvarchar(100)
SET @re=''
SELECT @re=@re+','+CAST(tag as nvarchar)
FROM 表一
WHERE aid=@aid
RETURN(STUFF(@re,1,1,''))
END

select aid,dbo.f_GetTag(aid) from 表一 group by aid
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yanpuforever
2009-05-21 · TA获得超过371个赞
知道小有建树答主
回答量:600
采纳率:0%
帮助的人:0
展开全部
既然你说表一可以查到多个tag值,那么怎么能唯一的与表二对应呢?你的kewoed和表一的tag有什么关系?说清楚点,这题应该不难
******
DECLARE @re nvarchar(100) ,
@i int
set @i=0
while @i<5 //这里假设你id有5条,你可以自动生成他的大小
begin
SET @re=''
SELECT @re=@re+CAST(tag as nvarchar)+','
FROM Table_1
WHERE aid=@i
insert into Table_2(id,keyword) values(@i,@re)
set @i=@i+1
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
roiyzhang
2009-05-21 · TA获得超过353个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:0
展开全部
是要查询kewords这个字段吗?
select kewords
from (select tag as tags
from dedejcw_taglist
where aid='11350')a ,table
where a.tags=tags

是这个意思吗?你说的看不明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式