从表中获取唯一同名人的记录

时间:2019-04-29 22:17:57

标签: java sql sqlite inner-join where-clause

我用内部联接连接两个表,其中我们有两个表的列在一个表的相同ID主键上,而在另一个表的外键列上。我怎么只获得那些与人名字相同的记录。

public Cursor getMedical() {
    String tables = "SELECT medical.m_id, profiles.name, medical.treatdate,
    medical.medicine, medical.diagnosis FROM profiles INNER JOIN
    medical ON id = id2 where name = ?";
    return mDB.rawQuery(tables,null);
}

1 个答案:

答案 0 :(得分:0)

您必须将名称作为参数传递。
您可以将方法更改为此:

public Cursor getMedical(String name) {
    String tables = "SELECT medical.m_id, profiles.name, medical.treatdate,
    medical.medicine, medical.diagnosis FROM profiles INNER JOIN
    medical ON id = id2 where name = ?";
    return mDB.rawQuery(tables, new String[] {name});
}

方法name的参数getMedical()将作为参数传递给rawQuery()方法。
现在您可以调用该方法:

Cursor c = getMedical("Bob");

Cursor c现在包含列name中名称为"Bob"的所有行。