如何在同一个表中有多个连接

时间:2018-09-28 23:04:30

标签: mysql scala anorm

在使用MySQL的Scala主动脉中,似乎多次在查询中连接同一表并使用别名只能返回查询中包含的最后一个表的值。

似乎最后一个联接会自动覆盖所有先前的值,即使它具有不同的别名。

请参见下面的示例。

说我有一张桌子mytable

id | name
1  | name1
2  | name2

mymaintable中有一条记录:myId1 = 1myId2 = 2

如果我愿意

SELECT
t1.*, t2.*
FROM mymaintable AS m
JOIN mytable AS t1 ON t1.id = m.myId1
JOIN mytable AS t2 ON t2.id = m.myId2

我希望有1, name1, 2, name2

现在在Anorm中,我将定义别名,以便

val aliaser = new ColumnAliaser {
      def as1 = ColumnAliaser.withPattern((0 to 2).toSet, "t1.")
      def as2 = ColumnAliaser.withPattern((2 to 4).toSet, "t2.")

      def apply(column: (Int, ColumnName)): Option[String] = as1(column).orElse(as2(column))
    }

,结果将为2, name2, 2, name2

这是一个错误吗?我做错什么了吗?

可能值得注意的是,我使用了2.5.3的定律

0 个答案:

没有答案