【发布时间】:2020-05-07 15:14:58
【问题描述】:
我在 Android Room 中使用以下查询从通过外键关联的两个表中获取值。 Item 是Transaction 的外键,与upc 列相关。 unique_id 是唯一的交易编号。
@Query("SELECT * FROM Transaction t INNER JOIN Item i ON i.upc=t.item_upc WHERE t.unique_id=:uniqueId")
LiveData<List<TransactionItem>> getTransactionItemsByUID(@NonNull final String uniqueId);
当我使用唯一的事务 ID 运行此命令时,查询会选择 Transactions 中的所有行,其中 upc 相同,而不管 WHERE 子句如何。基本上,选择具有不同unique_id 的事务。但是,我只对与unique_id 完全匹配的行感兴趣。
TransactionItem 类定义如下。
// TransactionItem Model
@Embedded
public ItemModel itemModel;
@Relation(parentColumn = "upc", entityColumn = "item_upc", entity = Transaction.class)
public List<Transaction> transactions;
我花了两天时间在谷歌上搜索和阅读,但仍然找不到正确的解决方案。我在这里俯瞰什么?
【问题讨论】:
标签: android mysql sql kotlin android-room