Foxtable(狐表)用户栏目专家坐堂 → [讨论]SQLJoinTableBuilder是否应该存异呢?


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

主题:[讨论]SQLJoinTableBuilder是否应该存异呢?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 11:31:00 [显示全部帖子]

呵呵,先请教一个问题,下面的语句改成Right Join,应该如何些?

 

Select 产品名称,客户名称,日期,数量,单价,数量 * 单价 As [金额] From ({订单} INNER JOIN {产品} ON {产品}.[产品ID] = {订单}.[产品Id]) INNER JOIN {客户} ON {客户}.[客户ID] = {订单}.[客户ID]

 

我改成Left Join能通过,改成Right Join则不可以,这是为什么?

[此贴子已经被作者于2011-6-20 11:31:33编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 15:05:00 [显示全部帖子]

能够将交集和差集的通用SQL语句给出来?

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 15:41:00 [显示全部帖子]

呵呵,谢谢

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/21 8:11:00 [显示全部帖子]

呵呵,SqlJoinTableBuilder还是有些用的,因为为了排除数据冗余,相关数据通常分布在不同的表中,例如订单表通常只是通过产品编号和产品表关联起来,订单表本身不会包括品名、型号、规格之类的列。

当然,我们也可以用表达式列实现,但是显然SqlJoinTableBuilder提供了另一个选择,使得我们的编码更加灵活。

 

至于Combine既然是组合统计结果,而统计工具都可以直接指定列名,所以也不存在Combine不能处理同名列的命题了,统计的时候分别指定列名吧。

[此贴子已经被作者于2011-6-21 8:31:47编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/21 8:39:00 [显示全部帖子]

以下是引用reachtone在2011-6-21 8:34:00的发言:

例如,Combine的左表有“金额”,右表有“数量”,希望在Combine的时候可以自定义一个Exp生成“单价”。这样效率高,顺序也不用调整了。

 

没必要了,直接用代码在组合后的表中添加表达式列即可。

现在Combine非常简洁,一行代码即可,加上这个就完全变模样了。


 回到顶部