有两个表,A表和B表,两表都有name字段和aa字段,其中B表中的name字段的值是在A表的name字段值中出现过的,而aa字段可以是A表中没有的。 现在要求显示A表中,在两表的aa字段中包含某个x值的记录。如:
A表 B表
name aa name aa
小花 葡萄 小红 葡萄
小红 西瓜 小兰 柿子如果要求显示aa字段为'葡萄'的记录,那么A表的‘小花’和‘小红’两个记录都要显示。
这个能不能通过过滤器filter来实现?
A表 B表
name aa name aa
小花 葡萄 小红 葡萄
小红 西瓜 小兰 柿子如果要求显示aa字段为'葡萄'的记录,那么A表的‘小花’和‘小红’两个记录都要显示。
这个能不能通过过滤器filter来实现?
union
select name from B where aa = '葡萄'
FILTER := '(name='''+ b.FieldByName('name').asstring +''') or aa='''+
b.FieldByName('aa').asstring+''')';
Filtered := True;
如果最终结果是在知道aa的值的情况下取得上述两条记录并显示出来
swayi21(微斯人) 的完全可以做到,
select name from A where aa = '葡萄'
union
select name from B where aa = '葡萄'
当然你可以把'葡萄'换成参数,然后接受用户输入并执行查询,
things(平) (走在未知世界) 的办法应可将表A中符合条件的记录全部筛选出来,如要传递参数应写在筛选表B的数据集中。