【问题标题】:PostgreSQL selecting each row from two temporary tables and comparing their valuesPostgreSQL 从两个临时表中选择每一行并比较它们的值
【发布时间】:2013-12-18 22:59:37
【问题描述】:

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

Table1

name varchar
id int
age int

Foo 包含 300 条记录,Bar 包含 100 条记录。是否有一个选择语句可以让我将 Foo 中的每一行与 bar 中的每一行进行比较以确定 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]);
       }
    }
}

【问题讨论】:

    标签: sql postgresql select


    【解决方案1】:
    select *
    from foo
      cross join bar
    where foo.age > bar.age
    

    【讨论】:

    • 感谢工作!你能看看后续问题吗,也许你可以帮忙。
    【解决方案2】:
    select * from foo cross join bar where foo.age > bar.age
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      • 2019-01-03
      • 2016-01-01
      • 1970-01-01
      • 2014-10-24
      • 2020-07-25
      • 1970-01-01
      相关资源
      最近更新 更多