Select 每个对应行的 MAX

Select MAX of each corresponding row

SQL 的新手,但我会尽量说清楚,

我有 3 个 table,它们有相应的键列。我需要 select 行设置列的最大值,对于它的每个对应列。

Table1
 ID1  Value1
  1    Marie
  2    Max
  3    John

Table2
 ID2  Value2
  1    First
  2    Second
  3    Third

Table3
 ID1 ID2
  1   1
  1   2
  2   1
  2   2
  2   3
  3   1

到目前为止我有这样的东西;

SELECT T1.Value1, T2.Value2 FROM Table1 T1
 INNER JOIN Table3 T3 ON T1.ID1 = T3.ID1
 INNER JOIN Table2 T2 ON T3.ID2 = T2.ID1
 WHERE (That's where I can't formulate correctly)

到目前为止,我的 table 已正确连接,但我只想输出 ID2 为相应 ID1 的最大值的行。

所以我们有

ID1 ID2
 1   2
 2   3
 3   3

因此,从值的对应关系我们终于有了。

Value1 Value2
 Marie  Second
 Max    Third
 John   First

有什么帮助吗?另外,禁止分组。

您必须在 WHERE 条件中使用 MAX:

SELECT
    T1.Value1,
    T2.Value2 
FROM
    Table1 T1
    INNER JOIN Table3 T3 ON T1.ID1 = T3.ID1
    INNER JOIN Table2 T2 ON T3.ID2 = T2.ID1 
WHERE
    T3.ID2 = (
        SELECT
            MAX(T3_alias.ID2) 
        FROM
            Table3 AS T3_alias 
        WHERE
            T3_alias.ID1 = T1.ID1
    )