用JDBC for SQL Server连接数据库,多表连接查询结果错误。

tinderman 2004-03-24 09:08:49
用JDBC for SQL Server连接数据库,多表连接查询结果错误。SQL语句大致如下:
SELECT DISTINCT field1, field2 INNER JOIN table1 ON ...
INNER JOIN table2 ON ...
......
经过跟踪发现在SQL语句查询字段后面给加了个*号,不知是为什么,成了这样:
SELECT DISTINCT field1, field2, * INNER JOIN table1 ON....
INNER JOIN table2 ON...
.....
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tinderman 2004-03-25
  • 打赏
  • 举报
回复
对不起,写错了,我是这样写的:
SELECT DISTINCT table1.field1, table2.field2 FROM table1
INNER JOIN table2 ON table1.fieldN=table2.fieldN
INNER JOIN table3 ON table2.fieldX=table3.fieldX
INNER JOIN table4 ON table3.fieldY=table4.fieldY
用SQL Server的事件探查器跟踪后发现在table2.field2后加上了" , * ".
如果去掉所加的", *"结果是正确的,我不明白为什么会自动加上一个*号.
nkwj 2004-03-25
  • 打赏
  • 举报
回复
SELECT DISTINCT field1, field2 from table1
INNER JOIN table2 ON ...
......

select后面得先跟个表再去join其它表的
chenzhengsi 2004-03-25
  • 打赏
  • 举报
回复
别看了,答非所问
chenzhengsi 2004-03-25
  • 打赏
  • 举报
回复
distinct关键字只能约束一个字段,如果有两个字段,则自动失效,成为select * ......
请使用如下语句:
SELECT DISTINCT table1.field1, field2=(select table2.field2 from table1 INNER JOIN table2 ON table1.fieldN=table2.fieldN) FROM table1
INNER JOIN table3 ON table2.fieldX=table3.fieldX
INNER JOIN table4 ON table3.fieldY=table4.fieldY
tinderman 2004-03-25
  • 打赏
  • 举报
回复
各位帮帮忙呀,这个问题太棘手了,以前从来没遇到过。
tmpx 2004-03-24
  • 打赏
  • 举报
回复
把你的完整SQL语句贴上来好吗,那样更容易看明白问题
gln 2004-03-24
  • 打赏
  • 举报
回复
我觉得如果是连接查询的话field应该这样写:
SELECT DISTINCT table1.field1, table2.field2 INNER JOIN table1 ON ...
INNER JOIN table2 ON ...
......
你试试吧,我以前也遇见过

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧