SQL 2 INNER JOIN with group by

时间:2017-06-11 20:15:36

标签: mysql join

我有如下SQL:

public void modifyCredentials(String account, String newPass)
{

SQLiteDatabase db=this.getWritableDatabase();

ContentValues contentValues=new ContentValues();

contentValues.put(COLUMN_PASSWORD,newPass);
String whereClause=COLUMN_ACCOUNT + " =?";
String[] whereArgs=new String[]{account};

db.update(TABLE_NAME,contentValues,whereClause,whereArgs);
db.close();
}

第一次加入是在我使用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的第二个表中获取数据。 结果是我需要的正确记录,但没有来自第二个连接表的数据。

1 个答案:

答案 0 :(得分:1)

你只要求第一张桌子。 SELECT p1.*您需要在select中的第二个表中包含您需要的任何字段,即select p1.*, p2.*