我创建了一个报告,从 Purchase_order 表 (PO_REF) 中提取了 1 个对象,从 ORG_ZONES 表 (ZONE_NAME) 中提取了一个对象。
为什么 BO 会无缘无故地生成一个连接到第三个表 ORGANIZATION 的查询?
请注意,ORGANIZATIONS 表与 PURCHASE_ORDER 和 ORG_ZONES 表相关,因此从某种意义上说,如果您要查看表关系图,您会看到一圈链接——如果相关的话!
这是生成的 SQL:
SELECT
PRELAY.PURCHASE_ORDER.PO_REF,
PRELAY.ORG_ZONES.ZONE_NAME
FROM
PRELAY.PURCHASE_ORDER,
PRELAY.ORG_ZONES,
PRELAY.ORGANIZATION
WHERE
( PRELAY.ORG_ZONES.ORG_ID=PRELAY.ORGANIZATION.ORG_ID )
AND
( PRELAY.PURCHASE_ORDER.SUPPLIER_ORG_ID=PRELAY.ORGANIZATION.ORG_ID(+)
AND PRELAY.ORGANIZATION.ORG_ID >1 )
AND ( PRELAY.ORG_ZONES.ZONE_ID=PRELAY.PURCHASE_ORDER.REMITTO_ZONE_ID
)
如果我没有从该表中进行选择,为什么 BO SQL 生成器会生成包含 ORGANIZATION 表的 SQL,否则我从中提取的两个表之间存在直接链接?
这是一个真正糟糕的 SQL 生成工具的例子吗?有没有办法避免这种情况 - 或仅在个人报告级别?