Hi, As the message said, some columns share the same names. You could first rename the columns of one table with the `as` operation [1].
Best, Xingcan [1] https://ci.apache.org/projects/flink/flink-docs-master/dev/table/tableApi.html#scan-projection-and-filter > On Mar 15, 2019, at 9:03 AM, 刘 文 <thinktothi...@yahoo.com> wrote: > > Exception in thread "main" org.apache.flink.table.api.ValidationException: > join relations with ambiguous names: id, name, value > at > org.apache.flink.table.plan.logical.LogicalNode.failValidation(LogicalNode.scala:156) > at > org.apache.flink.table.plan.logical.Join.validate(operators.scala:463) > at org.apache.flink.table.api.Table.join(table.scala:589) > at org.apache.flink.table.api.Table.join(table.scala:397) > at > com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin.Run$.main(Run.scala:26) > at > com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin.Run.main(Run.scala) > > > > ———————————————————————————————————————————————————— > > > package > com.opensourceteams.module.bigdata.flink.example.tableapi.operation.innerJoin > > import org.apache.flink.api.scala.{ExecutionEnvironment, _} > import org.apache.flink.table.api.TableEnvironment > import org.apache.flink.table.api.scala._ > > object Run { > > > def main(args: Array[String]): Unit = { > > val env = ExecutionEnvironment.getExecutionEnvironment > val tableEnv = TableEnvironment.getTableEnvironment(env) > > val dataSet = env.fromElements( (1,"a",10),(2,"b",20), (3,"c",30) ) > val dataSet2 = env.fromElements( (1,"a",10),(20,"b",20), (30,"c",30) ) > > > > //从dataset转化为 table > val table = tableEnv.fromDataSet(dataSet,'id,'name,'value) > val table2 = tableEnv.fromDataSet(dataSet2,'id,'name,'value) > > > > table.join(table2).where(" id = id ").first(1000).print() > > > > > > > } > > } > > > > > > > Best, > thinktothings > > >