sql语句:
Select Max(Id) As Id ,Title,(Select FieldC From TableC Where AId=   这里怎么取外搜索 的Max(Id)值        ) From tableA A Inner Join TableB B On B.Id=A.BId Where B.FieldsA='xxx' Group By A.Title

解决方案 »

  1.   


    SELECT a.id,a.Title,c.FieldC FROM (
    Select Max(Id) As Id ,Title
    From tableA A 
    Inner Join TableB B On B.Id=A.BId 
    Where B.FieldsA='xxx' 
    Group By A.Title
    ) a
    INNER JOIN TableC AS c ON a.id=c.Aid也不知道是不是这个意思啊
      

  2.   

    Select Max(Id) As Id ,Title,
    (Select FieldC From TableC Where AId=   Max(A.Id)        )   -- 直接写就行了,把外部表名(或别名)写上
    From tableA A 
    Inner Join TableB B On B.Id=A.BId 
    Where B.FieldsA='xxx' 
    Group By A.Title
      

  3.   

    SELECT T.Id,
           T.Title,
           C.FieldC
    FROM   (
               SELECT MAX(Id) AS Id,
                      Title
               FROM   tableA A
                      INNER JOIN TableB B
                           ON  B.Id = A.BId
               WHERE  B.FieldsA = 'xxx'
               GROUP BY
                      A.Title
           )                  AS T
           INNER JOIN TableC  AS C
                ON  C.AId = T.Id
      

  4.   

    试试这个:
    Select
    H.id,
    H.Title,
    T. FieldC
     From TableC  T
       Inner Join(
                  Select Max(Id) As Id ,
                               Title
                   From tableA A
                   Inner Join TableB B On B.Id=A.BId
                   Where B.FieldsA='xxx' Group By A.Title
    )H   on T.AId= H. Id
      

  5.   

    可以直接把表达式放进去,不过,如果这个 Id 在子查询的表中有同名的列,那么就需要在这个 Id 列名前加上 别名.
    Select Max(Id) As Id ,Title,(Select FieldC From TableC Where AId=   Max(Id)      ) From tableA A Inner Join TableB B On B.Id=A.BId Where B.FieldsA='xxx' Group By A.Title