我的sqlite数据库中有两个表,这是第一个名为supplier
的表,这是第二个名为product
的表
我想要做的是通过选择supplier_name
中的table product
来获取id_supplier
中的table_product
。这是我的查询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_supplier
但supplier_name
给我0
值,但是当我在mysql中尝试查询时,我得到了正确的结果。我的问题是:
提前谢谢。
答案 0 :(得分:0)
尝试使用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'
答案 1 :(得分:0)
问题解决了!当我们尝试从多个表中查询某些列时,请确保通过直接指向列名来获得所需的结果。这是我的正确代码
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;
}