2017-06-11 54 views
0

我有SQL象下面这样:SQL 2用INNER JOIN组由

SELECT 
     p1.* 
FROM 
     payment p1 
INNER JOIN (
     SELECT 
      p2.contract_id_fk, 
      MAX(p2.payment_id_pk) AS maxpay 
     FROM 
      payment p2 
     GROUP BY 
      p2.contract_id_fk) p2 
ON (
     p1.payment_id_pk = p2.maxpay) 
LEFT JOIN 
     contracts c 
ON (
     c.contract_id_pk = p1.contract_id_fk) 
WHERE 
     p1.contract_id_fk != 0 
AND 
     p1.payment_remain=0; 

第一个连接是获得最后一个记录,当我用group by 我的问题是在第二个连接。它没有从名为contracts的第二个表中获取数据。 结果是我需要的正确记录,但没有来自第二个连接表的数据。

+0

您能否描述此问题更多详细信息? – Gagantous

回答

1

你只要求第一张表。 SELECT p1.*您需要在选择中包含所需的第二个表格,即select p1.*, p2.*