1

给定 3 个表格,其列如下...

表(列)

A (a_pk, b_pk, 其他)

B (b_pk, a_pk, c_pk)

C (c_pk, b_pk, 日期)

(注释:pk是主键,date是日期)

...我正在尝试选择...

A.a_pk, A.other, C.date

...具有以下限制:

max(B.b_pk) 按 B.a_pk 分组(只为每个 A.a_pk 选择 B.b_pk 的最大值)

A.other = 'something'(只是一个 WHERE 示例)

ORDER BY C.date(按最晚日期排序)

下面是一次没有成功的尝试(其他人看起来更糟了)

SELECT A.a_pk, A.other, C.date
FROM A, C
WHERE   
 A.other = 'something'
 AND
 A.a_pk IN 
  (
  SELECT max(B.b_pk), B.a_pk, B.c_pk, C.date
  FROM B
  INNER JOINT C ON C.b_pk = B.b_pk
  GROUP BY B.a_kp
  )
ORDER BY C.date DESC

应该怎么做?

4

1 回答 1

0

尝试

     Select A.a_pk, A.other, C.date
     From A Left Join (B Join C On C.b_pk = B.b_pk)
         On B.a_pk = A.a_pk
             And B.b_pk = 
                 (Select Max(b_pk)
                  From B
                  Where a_pk = A.a_pk)
     Order By C.Date
于 2012-09-13T12:55:57.683 回答