2017-06-11 90 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.*