短篇SQL挑战有3个表,最大/分组依据,加入和排序依据

时间:2012-09-13 12:48:22

标签: mysql sql

给出3个表格,下面有列......

表(列)

  

A(a_pk,b_pk,其他)

     

B(b_pk,a_pk,c_pk)

     

C(c_pk,b_pk,date)

(评论:pk是主键,日期是日期)

......我正试图选择......

  

A.a_pk,A.other,C.date

......具有以下限制:

  B.a_pk的

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

     

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

     

订购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

应该怎么做?

1 个答案:

答案 0 :(得分: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