set skip 命令示例

下面示例在三个表中查找第一个字段内容相同的记录。首先使用 scan 扫描第一个表。这个表与第二个表有关系,而第二个表与第三个表有关系。然后第一个表为其他两表发出 set skip 命令。请注意 set skip 对第二个表没有影响。它只影响被扫描(替代,等等)的表。在这个示例中,查到了八条记录。

close databases
create table parent free (name c(1), val c(10)) && 父表有一个a 和 b.
insert into parent values ('a', 'parent.a1')
insert into parent values ('b', 'parent.b1')

select 0 && child1 有两个 a 和 b
create table child1 free (name1 c(1), val c(10))
insert into child1 values ('a', 'child1.a1')
insert into child1 values ('b', 'child1.b1')
insert into child1 values ('b', 'child1.b2')
insert into child1 values ('a', 'child1.a2')
index on name1 tag tagname && 标识名是无关紧要的

select 0 && child2 有两个 a 和 b

create table child2 free (name2 c(1), val c(10))
insert into child2 values ('b', 'child1.b1')
insert into child2 values ('b', 'child1.b2')
insert into child2 values ('a', 'child1.a1')
insert into child2 values ('a', 'child1.a2')
index on name2 tag tagname && 标识名是无关紧要的

select child1
set relation to name1 into child2
select parent
set relation to name into child1
set skip to child1, child2 && 注意对两个子表都设置 skip.
&& 否则,只有四条记录列出.
scan all && 有八种情况: 四个 a 和四个 b

? parent.val, child1.val, child2.val
endscan