跨表操作

字段匹配

play

字段匹配功能可根据一定的匹配规则将两个表的字段和值匹配起来。该功能有点类似VLOOKUP,只是它用于数据库的两张表间,其匹配条件可增至三个VLOOKUP只有一个, 其匹配结果可以指定一个字段,也可以不指定字段,如果不指定字段其匹配结果为FALSE或TRUE,TRUE表示匹配到,FALSE表示匹配不到。

点击SqlCel选项卡下的“字段匹配”按钮。弹出以下对话框,在其中填写一部分信息举例如下: fldsmatch

“从表”是匹配结果的来源表,至表是匹配结果的接收表。SqlCel会将从表中符合匹配条件的第一条记录匹配到至表中。

“从表A”和“至表B”后面的下拉框中罗列了当前连接数据库中的所有表名。当选择好了从表或至表后其对应的匹配条件的下拉框中会动态填充所选表的所有字段名称,如果 选择了“从表A”则填充的结果是“A.”+字段名,如果选择的是“至表B”则填充的结果是“B.”+字段名。

匹配条件可填写三个字段的等式,等号的两边只能填写字段。

匹配的结果表的表名为“至表B”后面加一个“matchrslt”,匹配结果字段为“A”后面加匹配字段名称,如果没有选择“从表A待匹配的字段”则匹配的结果字段为ISEXIST, 其值为TRUE时表示匹配到,FALSE时表示匹配不到。

字段匹配的速度会比较快,但是其限制性也比较大,比如匹配条件只能写等式,等号的两边必须是字段而不能填写值,匹配条件最多只能写三个,如果想超出这些限制 可选择用 表连接 。

表合并

play

表合并可将两个或多个具有相同字段名称的表合并成一个表。

  • 同时选中多个待合并的表
  • 点击SqlCel选项卡下的“表合并”按钮或点击工作面板表的C1单元格即可实现表合并。

在合并表之前SqlCel会检查所选表的字段名称是否相同,如果如不相同则会提示您“检测到所选表并非同类型因此表无法合并”。

如果您在合并表之前不知道哪些表具有相同的字段,此时可以借助SqlCel的表排序功能,具体请参考 表排序

表连接

play

表连接可实现SQL语句中的JOIN...ON功能。它涉及到左表、右表、输出字段、连接方式和连接条件。

点击SqlCel选项卡下的“表连接”按钮将弹出以下对话框,在其中填写一定的信息,举例如下:

tbjoin

“左表”或“右表”选择好之后“待输出的字段”会跟着改变为表中的字段名,同时“连接条件”里面的“字段”的下拉框中也会动态填充所选表的字段名,该字段名具体为“L.”+ 左表的字段名和“R.”+右表的字段名。

至少选择一个“待输出的字段”,“待输出的字段”的分组框中有两个复选框,勾选上面一个复选框用于全选所有左表的字段,勾选下面一个复选框用于全选所有右表的字段。

对话框中提供了三种连接方式。内链接对应各自SQL语句的INNER JOIN,左连接对应LEFT JOIN,右连接对应RIGHT JOIN。需要注意的是当连接的数据库为文件夹时,内连接的匹配结果为符合连接条件的所有记录。左连接的匹配结果是以左表为基准匹配右表获取其符合连接条件的第一条记录,如果在右表找不到符合连接条件的记录则输出的右表字段为空值,左连接的匹配结果和左表的行数相同。而右连接与左连接恰恰相反。

“连接条件”分组框用于动态增减匹配条件。

生成的结果表为“combineresult_”后面加一个6位随机字符串,结果表中的字段如果来自左表其前面会加“L_”,如果来自右表其前面会加“R_”,举例如下:

tbjoinrslt