Foxtable(狐表)用户栏目专家坐堂 → 如何使用多表查询


  共有10543人关注过本帖树形打印复制链接

主题:如何使用多表查询

帅哥哟,离线,有人找我吗?
lihe60
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
如何使用多表查询  发帖心情 Post By:2010/11/16 8:34:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = " SELECT * FROM {表B} INNER JOIN {表C} ON {表B}.第一列 = {表C} .第一列"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.datarows
    Output.show(dr("第一列"))
Next

 

在命令窗口执行此代码,为什么不出结果?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/11/16 8:47:00 [只看该作者]

说明没有符合条件的行。


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/16 9:13:00 [只看该作者]

这是附件,条件明明是符合的,但为什么没有结果?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/16 9:30:00 [只看该作者]

以下是引用狐狸爸爸在2010-11-16 8:47:00的发言:

说明没有符合条件的行。

贺老师,如何修正代码?

 

 

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = " SELECT * FROM {表B} INNER JOIN {表C} ON {表B}.第一列 = {表C}.第一列"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.datarows
messagebox.show(dr("第一列"))
Next

[此贴子已经被作者于2010-11-16 9:30:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/16 9:50:00 [只看该作者]

盼大家献计献策

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/11/16 9:54:00 [只看该作者]

你的表B、表C的结构不同,所以查询之后不存在名称为"第一列"的列,否则这"第一列"到底是表B的还是表C的?

 

对于同名的列,应该明确来源表:

 

SELECT {表B}.第一列,{表C}.第二列  FROM {表B} INNER JOIN {表C} ON {表B}.第一列 = {表C}.第一列

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/16 10:09:00 [只看该作者]

运行表B中的窗口,表C的记录为什么查不到呢?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.table


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/11/16 10:35:00 [只看该作者]

我测试执行了。

Foxtable有一个SQL执行窗口,可以直接执行Select语句,很方便,多测试,多实验


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/16 10:45:00 [只看该作者]

以下是引用狐狸爸爸在2010-11-16 10:35:00的发言:

我测试执行了。

Foxtable有一个SQL执行窗口,可以直接执行Select语句,很方便,多测试,多实验

经多次测试,此代码是可以用的。但必须第一列的数据相同的才输出,数据不同的不能输出。

若把表B和表C的所有数据有条件(按字段或表达式)多表查询,这样的代码怎么写。merger是可以实现的,但速度可能较慢。

[此贴子已经被作者于2010-11-16 10:45:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/16 12:13:00 [只看该作者]

前几天,一位老兄说用了一百多个表,不知这位老兄是怎么实现多表查询的?


 回到顶部