请高手帮忙解决MSSQL联合查询问题

MSSQL:SELECTmes.*,mes_type1.type1_nameAST1Name,mes_type1.visit_levelFROMmesLEFTJOINme... MSSQL:
SELECT mes.*,mes_type1.type1_name AS T1Name,mes_type1.visit_level FROM mes LEFT JOIN mes_type1 ON mes_type1.type1=mes.type1 LEFT JOIN webuser ON webuser.user_code=mes.op_first_code LEFT JOIN webuser_rel_group ON webuser_rel_group.user_id=webuser.id WHERE mes.subject!='' and( ( mes_type1.type1_name !='' ) )and( ( mes_type1.flag ='1' ) )and ( ( ( mes.column_id ='21' ) and ( mes_type1.column_id ='21' ) ) ) and ( ( webuser_rel_group.group_id ='1' ) or ( webuser_rel_group.group_id ='2' ) or ( webuser_rel_group.group_id ='3' ) ) ORDER BY mes.show_number DESC, mes.id DESC

会查出很多重复项。

MYSQL:

SELECT DISTINCT mes.*,mes_type1.type1_name AS T1Name,mes_type1.visit_level FROM mes LEFT JOIN mes_type1 ON mes_type1.type1=mes.type1 LEFT JOIN webuser ON webuser.user_code=mes.op_first_code LEFT JOIN webuser_rel_group ON webuser_rel_group.user_id=webuser.id WHERE mes.subject!='' and( ( mes_type1.type1_name !='' ) )and( ( mes_type1.flag ='1' ) )and ( ( ( mes.column_id ='21' ) and ( mes_type1.column_id ='21' ) ) ) and ( ( webuser_rel_group.group_id ='1' ) or ( webuser_rel_group.group_id ='2' ) or ( webuser_rel_group.group_id ='3' ) ) ORDER BY mes.show_number DESC, mes.id DESC

在MYSQL下使用DISTINCT就没有重复项。
在MSSQL此语句有错误:“不能以 DISTINCT 方式选择 text、ntext 或 image 数据类型。”

试了N种方式也不行。请高手帮帮忙,指点一下
展开
 我来答
理工爱好者

2010-08-04 · TA获得超过2283个赞
知道大有可为答主
回答量:5249
采纳率:97%
帮助的人:639万
展开全部
mysql 和 sql server的语法有差异, 解析distinct不同

SQL语句太长了, 表间的关系也不清楚
在确认没有重复项的情况下, 一般是你的条件关联少了
你可以从2个表连接开始逐渐增加表进行排查
百度网友7e0d18ff3
2010-08-17
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
JOIN了这些表,可能哪个表里有重复记录,然后累加一下,可能会出现很多值啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式