续集加入表但我有重叠的列名.我如何为这些列名称添加别名?

Jwa*_*622 11 ruby sequel

这是我加入两个表的代码:

DB.from(:sources).join(:payloads, :source_id => :id)
Run Code Online (Sandbox Code Playgroud)

表名是:sources,:payloads.

问题是:id有效负载中有一列覆盖了:id:sources.我需要使用别名,以便我只获取包含所有列名称的超级表.但是,正如当前编写的那样,并且我的表当前是结构化的,:id列正在合并,第二个表优先.这有意义吗?

如何创建别名以使:id:sources仍然显示?

Jiř*_*šil 6

sources.id使用其他名称别名,请使用标识符别名.

.select_append(:sources__id___source_id).join...
# *, `sources`.`id` AS 'source_id'
Run Code Online (Sandbox Code Playgroud)


the*_*Man 5

我认为在这种情况下,使用 Sequelgraph会对您有所帮助。

从文档:

与#join_table 类似,但对所选列使用明确的别名,并保留有关别名的元数据以用于其他方法。

您看到的问题是一个表中的同名列与另一个表中的同名列相冲突。Sequel 的使用graph应该确保表名和列作为键返回,而不仅仅是列。

各种文档文件有许多示例,这将是一个很长的答案,因此我建议您浏览文档,搜索用途,看看它们如何为您工作。

此外,Sequel IRC 频道也可以成为此类问题的重要资产。