DB2SQL—如何在另一个表的结果字段上联接一个表
我试图连接两个表,但无法将表1的字段1与表2的字段2连接起来,这是一条不同指令的结果 e、 g 什么可以设置为X?可能是b.f2或b.secondField 如果X是一个特定的字段,我没有问题,如果它是由一个不同的、求和的或类似的函数给出的,我无法管理它 有人能给我小费吗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 会得到
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)