当前位置:数据库 > SQLServer >>

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

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种方式也不行。请高手帮帮忙,指点一下
答案:mysql 和 sql server的语法有差异, 解析distinct不同

SQL语句太长了, 表间的关系也不清楚
在确认没有重复项的情况下, 一般是你的条件关联少了
你可以从2个表连接开始逐渐增加表进行排查
其他:JOIN了这些表,可能哪个表里有重复记录,然后累加一下,可能会出现很多值啊 

上一个:数据库高手帮忙--多字段(column )同时检索语法--mysql,mssql均可。
下一个:谁可以帮我还原一下mssql数据库 我不会弄

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,