0

我有这样的情况:

表 1:pk1 整数、pk2 整数、字符串1、字符串 2、字符串 3 表
2:pk3 整数、字符串 4、字符串 5、字符串 6

其中第一个表中的 pk2 int 与第二个表中的 pk3(索引)相同。创建表时,我没有使用辅助键,现在如果可能,我必须在单个查询中查询这两个表。到目前为止,我用两个查询来做到这一点:

SELECT pk1, pk2, string1, string2, string3 
FROM table1 
WHERE string1 ILIKE 'a%'   

然后,遍历结果:

SELECT pk3, string4, string5, string6 
from table2 WHERE pk3=" & Cint(reader.GetValue(1))  

注意:reader.GetValue(1) = pk2 来自第一个表)

最后,我得到了所需的本地结果,例如:

1、string1、string2、string3、string4、string5、string6

我在第二个查询中使用 ANY 或 IN 进行了一些简化,但我相信像 PostgreSQL 这样的强大数据系统可以在单个查询中完成此操作。

该查询在显示的示例中应如何显示?

4

2 回答 2

2
SELECT t1.pk1, 
       t1.pk2, 
       t1.string1, 
       t1.string2, 
       t1.string3, 
       t2.string4, 
       t2.string5, 
       t2.string6
FROM table1 t1
  join table2 t2 on t1.pk2 = t2.pk3
WHERE t1.string1 ILIKE 'a%'   
于 2013-01-12T12:56:42.580 回答
1

使用join子句组合两个表并得到结果。

于 2013-01-12T12:59:47.050 回答