PostgreSQL 从两个临时表中选择每一行并比较它们的值



我有两个表,foo和bar,它们都具有相同的架构和行类型

Table1
name varchar
id int
age int

Foo 包含 300 条记录,Bar 包含 100 条记录。是否有一个选择语句可以让我将 Foo 中的每一行与栏中的每一行进行比较,以确定 foo.age 是否> bar.age?因此,如果它是 java 中的 for 循环,它看起来像这样:

for(int i = 0; i < Foo.length; i++){
    for(int j = 0; j < Bar.length; j++){
       //Select here if foo[i].age > bar[j].age
    }
}

编辑后续问题:

如果我有一个名为"foobar"的临时表,其架构与"表 1"中的架构相同,如何将仅属于 foo 一部分的行插入到临时表中。例如在 java 中:

List list = new LinkedList<Table1>
for(int i = 0; i < Foo.length; i++){
    for(int j = 0; j < Bar.length; j++){
       if(foo[i].age > bar[j].age){
            list.add(foo[i]);
       }
    }
}
select *
from foo
  cross join bar
where foo.age > bar.age
select * from foo cross join bar where foo.age > bar.age

会这样做,但我想知道你为什么要将一个条目与其他表中的每个条目进行比较。

最新更新