1

在 DataMapper 中,我有这样的表:

Foo
===
id            Integer
other_columns Whatever

Fuzz
===
id            Integer
other_columns Whatever

对于协会:

class Fuzz
  has 1, :foo, :child_key => :id
end

当我打电话时: Fuzz.first.foo

DataMapper 生成这样的 SQL: select raw_sql_.* from(SELECT "ID", "OTHER_COLUMNS", "ID" FROM "FOO" WHERE ... ORDER BY "ID")

由于“ORDER BY”子句,Oracle 回来说:选择列表中的列命名不明确

我该如何避免这种情况?这是一个遗留数据库系统,所以我无法更改架构。

4

1 回答 1

0

从您的帖子中,尚不清楚为什么您将 ID 两次添加到内部选择中。是因为您从两个表中选择了 ID 吗?然后,在选择列表中,在它们前面加上表名,并为它们提供您选择的别名,例如

SELECT FOO."ID" AS FOO_ID, "OTHER_COLUMNS", FUZZ."ID" AS FUZZ_ID
FROM FOO, FUZZ
WHERE ...
ORDER BY FOO.ID
于 2010-07-30T17:20:23.693 回答