2016-07-08 60 views
1

我正在使用FMDatabase進入我的項目Realm。但是,我的SQL Query如下所示:在Realm中使用Join查詢

SELECT a.areaId, a.areaName, orderId, t.accountId, t.accountNo, 
     amount, customerId, customerName, customerCategoryId, 
     customerCategoryName, i.dispStatus, t.locationId, 
     locationName, totalAmount, orderCode, orderFullName, 
     t.tableId, t.tableName, tableTypeId, productAmount 
FROM TableTable t 
LEFT JOIN AreaTable a ON t.areaId = a.areaId 
LEFT OUTER JOIN OrderTable i ON t.tableId = i.tableId 
          AND (i.dispStatus='4' OR i.dispStatus='2' OR i.dispStatus='5') 
WHERE t.accountId = %@ AND t.locationId = %@ 

我不知道如何將它轉換爲Realm語法。

AreaModel:

@property (strong, nonatomic) NSString *areaId; 
@property (strong, nonatomic) NSString *areaName; 
@property (assign, nonatomic) NSString *position; 
@property (strong, nonatomic) NSString *dispStatus; 
@property (strong, nonatomic) NSString *isDefault; 
@property (strong, nonatomic) NSString *locationId; 
@property (strong, nonatomic) NSString *accountId; 
@property (strong, nonatomic) NSString *accountNo; 
@property (strong, nonatomic) NSString *regDttm; 
@property (strong, nonatomic) NSString *regUser; 
@property (strong, nonatomic) NSString *langId; 

的TableModel:

@property (strong, nonatomic) NSString *tableId; 
@property (strong, nonatomic) NSString *areaId; 
@property (strong, nonatomic) NSString *tableTypeId; 
@property (strong, nonatomic) NSString *tableName; 
@property (strong, nonatomic) NSString *available; 
@property (strong, nonatomic) NSString *topPosition; 
@property (strong, nonatomic) NSString *leftPosition; 
@property (strong, nonatomic) NSString *dispStatus; 
@property (strong, nonatomic) NSString *isDefault; 
@property (strong, nonatomic) NSString *locationId; 
@property (strong, nonatomic) NSString *accountId; 
@property (strong, nonatomic) NSString *accountNo; 
@property (strong, nonatomic) NSString *regDttm; 
@property (strong, nonatomic) NSString *regUser; 
@property (strong, nonatomic) NSString *updDttm; 
@property (strong, nonatomic) NSString *updUser; 

OrderModel:

@property (strong, nonatomic) NSString *orderId; 
@property (strong, nonatomic) NSString *orderCode; 
@property (strong, nonatomic) NSString *orderType; 
@property (strong, nonatomic) NSString *orderName; 
@property (strong, nonatomic) NSString *orderDate; 
@property (strong, nonatomic) NSString *orderUser; 
@property (strong, nonatomic) NSString *orderFullName; 
@property (strong, nonatomic) NSString *customerCode; 
@property (strong, nonatomic) NSString *customerPhone; 
@property (strong, nonatomic) NSString *orderDescription; 
@property (strong, nonatomic) NSString *paymentType; 
@property (strong, nonatomic) NSString *updDttm; 
@property (strong, nonatomic) NSString *updUser; 
@property (strong, nonatomic) NSDecimalNumber *areaId; 
@property (strong, nonatomic) NSDecimalNumber *tableId; 
@property (strong, nonatomic) NSString *isDirty; 
@property (strong, nonatomic) NSString *locationPhone; 
@property (strong, nonatomic) NSString *reduction; 
@property (strong, nonatomic) NSDecimalNumber *accountId; 
@property (strong, nonatomic) NSString *accountNo; 
@property (strong, nonatomic) NSString *regUser; 
@property (strong, nonatomic) NSString *regDttm; 
@property (strong, nonatomic) NSDecimalNumber *locationId; 
@property (strong, nonatomic) NSString *locationName; 
@property (strong, nonatomic) NSDecimalNumber *customerId; 
@property (strong, nonatomic) NSString *customerName; 
@property (strong, nonatomic) NSDecimalNumber *customerCategoryId; 
@property (strong, nonatomic) NSString *customerCategoryName; 
@property (strong, nonatomic) NSString *dispStatus; 
@property (strong, nonatomic) NSString *invoiceDate; 
@property (strong, nonatomic) NSDecimalNumber *quantity; 
@property (strong, nonatomic) NSDecimalNumber *productAmount; 
@property (strong, nonatomic) NSDecimalNumber *wholesaleAmount; 
@property (strong, nonatomic) NSDecimalNumber *productReductionAmount; 
@property (strong, nonatomic) NSDecimalNumber *totalAmount; 
@property (strong, nonatomic) NSDecimalNumber *reductionAmount; 
@property (strong, nonatomic) NSDecimalNumber *reductionPercent; 
@property (strong, nonatomic) NSDecimalNumber *amount; 
@property (strong, nonatomic) NSDecimalNumber *cashAmount; 
@property (strong, nonatomic) NSDecimalNumber *changeAmount; 
@property (strong, nonatomic) NSDecimalNumber *profitAmount; 
@property (strong, nonatomic) NSDecimalNumber *loyaltyPoints; 
@property (strong, nonatomic) NSString *channelType; 
@property (strong, nonatomic) NSString *deviceType; 
@property (strong, nonatomic) NSDecimalNumber *storeId; 
@property (strong, nonatomic) NSString *storeName; 
@property (strong, nonatomic) NSString *invoiceFullName; 
@property (strong, nonatomic) NSString *invoiceCode; 
@property (strong, nonatomic) NSString *invoiceUser; 
@property (strong, nonatomic) NSString *reductionDisplay; 
@property (strong, nonatomic) NSString *areaName; 
@property (strong, nonatomic) NSString *tableName; 
@property (strong, nonatomic) NSString *accessType; 
@property (strong, nonatomic) NSString *invoiceType; 
@property (strong, nonatomic) NSDecimalNumber *payAmount; 
@property (strong, nonatomic) NSDecimalNumber *paymentByCash; 
@property (strong, nonatomic) NSDecimalNumber *paymentByVoucher; 
@property (strong, nonatomic) NSDecimalNumber *loanAmount; 
@property (strong, nonatomic) NSString *paymentStatus; 
@property (strong, nonatomic) NSString *customerIsDefault; 
@property (strong, nonatomic) NSDecimalNumber *taxAmount; 
@property (strong, nonatomic) NSDecimalNumber *preTaxAmount; 
@property (strong, nonatomic) NSString *taxDescription; 
@property (strong, nonatomic) NSString *refTransactionCode; 
@property (strong, nonatomic) NSString *username; 
@property (strong, nonatomic) NSString *userFullName; 
@property (strong, nonatomic) NSString* receiveIssue; 
+0

你可以請你分享你的領域模型類看起來像什麼? – bdash

+0

我用模特編輯了我的問題,可以幫我@bdash –

回答

2

由於境界是O對數據庫而不是關係數據庫,而不是間接使用主鍵和外鍵。例如,您Table類需要有明確的,它有一個Area使用:

@property (nonatomic) Area *area; 

關係,如這可以在查詢中使用:

[Table objectsWhere:@"area.name = 'Some Area'"] 

注意,使用這樣的關係並不排除爲實例提供唯一標識符唯一標識符對於將本地對象映射到Web服務上的對象或幫助在本地應用程序中的線程之間處理對象仍然很有用。