sql 语句 用union合并表 但是我在前面加了个字段用来排序。数据不相同了。 union不会合并了......

有什么办法可以解决这个重复问题吗、,?每个表都加了asmark用来做排序可是这样数据就不相同了。就出现了重复。有什么好办法解决吗?strsql="select*from(... 有什么办法可以解决这个重复问题吗、,?每个表都加了as mark用来做排序 可是这样数据就不相同了。就出现了重复。有什么好办法解决吗?

strsql="select * from (select * ,150 as mark from corpinfo where viewsign=0 and instr(','+product+',',',"&srt_pdt&",') >0 union select * ,100 as mark from corpinfo where viewsign=0 and product like '%"&srt_pdt&"%' union select * ,50 as mark from corpinfo where viewsign=0 and ( name like '%"&srt_pdt&"%' or intro like '%"&srt_pdt&"%' )) as a order by mark desc,prize desc,id desc"
展开
 我来答
kas68310
2010-12-30 · TA获得超过3638个赞
知道大有可为答主
回答量:1468
采纳率:33%
帮助的人:1189万
展开全部
'+product+' 拼接字符串时应为: "+product+"
觉得问题应该出在这地方,对于开发程序来说,你的写法在这里不会把变量值替换进字符串.
而是直接把'+变量名+'当成字符串的一部分传给了数据库执行.

如果你用来union的三个源表 列数量 和 列类型 都一致,那么在相同位置加上用来做排序的列就没有问题.
* ,150 as mark
* ,100 as mark
ddprflf
2011-01-04 · TA获得超过640个赞
知道小有建树答主
回答量:564
采纳率:0%
帮助的人:245万
展开全部
还有其他方法么?
如果你是要两个表合并后用where条件的话,那就不如来个子查询了?
select c.* from (select id,name,time from a union select id,name,time from b) as c where ……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flying_hawkns
2010-12-30 · TA获得超过908个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:294万
展开全部
你都加上了不同值一个150,一个100,它们怎么能算相同数据啦呢!你前面的select和后边那个select不可能出现相同数据而合并成一条数据了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式