DB2SQL—如何在另一个表的结果字段上联接一个表

DB2SQL—如何在另一个表的结果字段上联接一个表,sql,join,db2,Sql,Join,Db2,我试图连接两个表,但无法将表1的字段1与表2的字段2连接起来,这是一条不同指令的结果 e、 g 什么可以设置为X?可能是b.f2或b.secondField 如果X是一个特定的字段,我没有问题,如果它是由一个不同的、求和的或类似的函数给出的,我无法管理它 有人能给我小费吗 SELECT f1 FROM table1 a JOIN (SELECT DISTINCT(f2) as "secondField" FROM table2) b ON a.f1 = b.secondField 会得到

我试图连接两个表,但无法将表1的字段1与表2的字段2连接起来,这是一条不同指令的结果

e、 g

什么可以设置为X?可能是b.f2或b.secondField

如果X是一个特定的字段,我没有问题,如果它是由一个不同的、求和的或类似的函数给出的,我无法管理它

有人能给我小费吗

SELECT f1 
FROM table1 a
JOIN (SELECT DISTINCT(f2) as "secondField" FROM table2) b
  ON a.f1 = b.secondField
会得到你想要的。由于您在子查询中指定了一个特定的名称,这就是您要使用的名称,也就是您必须使用的名称,因为您使用的是DISTINCT。

您是否尝试加入secondfield?请参见以下内容:

Select f1
From   table1 
join (Select distinct(f2) as "secondField"
      From table2
    ) b on b.secondField = table1.f1

如果您在子查询中使用聚合函数,如Distinct、Count、Max等,只需为聚合指定一个别名,并在join语句中使用此别名即可。

看起来您尝试执行的操作可能更简单,如下所示:

SELECT f1 
FROM table1 a
WHERE  f1 IN (SELECT f2 as "secondField" FROM table2)


其中一个可能比您的加入快

谢谢大家的帮助,我会尽快尝试您的建议。
SELECT f1 
FROM table1 a
WHERE  f1 IN (SELECT f2 as "secondField" FROM table2)
SELECT f1 
FROM table1 a
WHERE  f1 IN (SELECT DISTINCT(f2) as "secondField" FROM table2)