Sequel 连接表,但我有重叠的列名。如何为这些列名称起别名?
Sequel joining tables but I have overlapping column names. How do I alias these column names?
这是我加入两个 table 的代码:
DB.from(:sources).join(:payloads, :source_id => :id)
table 个名字是 :sources
、:payloads
。
问题是有效负载中有一个 :id
列覆盖了 :sources
中的 :id
列。我需要使用一个别名,这样我就可以获得一个包含所有列名的 mega table。然而,正如目前所写的和我的 table 目前的结构,:id
列正在合并,第二个 table 优先。这有意义吗?
如何创建别名以便 :sources
中的 :id
列仍然显示?
我认为在这种情况下使用 Sequel 的 graph
会对您有所帮助。
来自文档:
Similar to #join_table, but uses unambiguous aliases for selected columns and keeps metadata about the aliases for use in other methods.
您遇到的问题是一个 table 中的同名列与另一个中的同名列冲突。 Sequel 对 graph
的使用应确保 table 名称和列作为键返回,而不仅仅是列。
各种文档文件有很多示例,这会是一个很长的答案,所以我建议您浏览文档,搜索用途,看看它们如何为您工作。
此外,Sequel IRC 频道也是解决这类问题的好方法。
要将 sources.id
别名为其他名称,请使用 Identifier aliases。
.select_append(:sources__id___source_id).join...
# *, `sources`.`id` AS 'source_id'
这是我加入两个 table 的代码:
DB.from(:sources).join(:payloads, :source_id => :id)
table 个名字是 :sources
、:payloads
。
问题是有效负载中有一个 :id
列覆盖了 :sources
中的 :id
列。我需要使用一个别名,这样我就可以获得一个包含所有列名的 mega table。然而,正如目前所写的和我的 table 目前的结构,:id
列正在合并,第二个 table 优先。这有意义吗?
如何创建别名以便 :sources
中的 :id
列仍然显示?
我认为在这种情况下使用 Sequel 的 graph
会对您有所帮助。
来自文档:
Similar to #join_table, but uses unambiguous aliases for selected columns and keeps metadata about the aliases for use in other methods.
您遇到的问题是一个 table 中的同名列与另一个中的同名列冲突。 Sequel 对 graph
的使用应确保 table 名称和列作为键返回,而不仅仅是列。
各种文档文件有很多示例,这会是一个很长的答案,所以我建议您浏览文档,搜索用途,看看它们如何为您工作。
此外,Sequel IRC 频道也是解决这类问题的好方法。
要将 sources.id
别名为其他名称,请使用 Identifier aliases。
.select_append(:sources__id___source_id).join...
# *, `sources`.`id` AS 'source_id'