SQLite 查询给出与 mysql 不同的结果

SQLite query give different result from mysql

我的 sqlite 数据库中有两个 table,第一个 table 名为 supplier,第二个 table 名为 product

我想做的是通过选择 table_product 中的 id_supplier 来获得 table product 中的 supplier_name。这是我的查询 SELECT table_supplier.id_supplier, table_supplier.supplier_name from table_invoice_in, table_supplier where table_invoice_in.id_product = '4' and table_supplier.id_supplier = table_invoice_in.id_supplier

我从那个查询中得到的是我可以获得 id_suppliersupplier_name 给我 0 值,但是当我尝试 mysql 中的查询时,我得到了正确的结果。我的问题是:

  1. 这是 sqlite 的限制还是我的查询有问题?

提前谢谢你。

尝试使用 JOIN:

SELECT table_supplier.id_supplier, table_supplier.supplier_name FROM table_supplier JOIN table_invoice_in ON table_supplier.id_supplier = table_invoice_in.id_supplier WHERE table_invoice_in.id_product = '4'

问题解决了!当我们尝试从多个 table 中查询某些列时,请确保我们通过直接指向列名来获得所需的结果。这是我的正确代码

public Cursor SelectInvoiceInById(String id){
    String query = "SELECT product_name from table_product, table_invoice_in where table_invoice_in.id_invoice_in = '"+ id + "' and table_product.id_product = table_invoice_in.id_product";
    ReadDB();
    cursor = database.rawQuery(query, null);
    cursor.moveToFirst();
    if(cursor.getCount() > 0){
        while (!cursor.isAfterLast()){
            Log.d("RESULT", String.valueOf(cursor.getString(cursor.getColumnIndex(SQLiteHelper.PRODUCT_NAME))));
            cursor.moveToNext();
        }
    }
    CloseDB();
    return cursor;
}