我有如下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
的第二个表中获取数据。
结果是我需要的正确记录,但没有来自第二个连接表的数据。
答案 0 :(得分:1)
你只要求第一张桌子。 SELECT p1.*
您需要在select中的第二个表中包含您需要的任何字段,即select p1.*, p2.*