来自不同数据源的子查询(Eclipse报告)

时间:2017-07-04 07:58:51

标签: mysql database eclipse datasource birt

我的要求是查询类似于以下内容:

SELECT * FROM table1
WHERE oid in (
    SELECT * FROM table 2
    WHERE condition )

我的问题是table1和table2在不同的数据库上。

我已经读过你可以做类似[db1] .table的事情,但在我使用Eclipse Birt环境的情况下它不起作用。

1 个答案:

答案 0 :(得分:0)

您可以通过两种方式解决此问题:

1)使用类似数据库链接的东西。 MySQL的支持有限(注意:我几乎没用过MySQL)请参阅Oracle Database Link - MySQL Equivalent?。这样,您就可以将问题移到数据库级别。

2)根据实际问题(读取:“选择oid FROM table2 where condition”的长度,你可以使用BIRT数据立方体或

3)使用两个DataSet和一个布局结构列表表,如下所示:

两个DataSet需要不同的DataSource。

  • DataSet“T2_oids”,带有查询“从table2中选择oid where condition”。
  • DataSet“T1_object”,带有一个参数param_oid和一个查询“select * from table1 where oid =?”。

布局结构: *外部ListItem“T2_oids”绑定到DataSet“T2_oids” * Inner TableItem或ListItem“T1_object”绑定到DataSet“T1_object”,参数绑定到row [“oid”](或行[“OID”],使用列表框)。此项必须放在T2_oids详细信息部分内。

由于T1_object将返回单行,您甚至可以使用GridItem而不是TableItem或ListItem。