首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在领域中使用联接查询

在领域中使用联接查询
EN

Stack Overflow用户
提问于 2016-07-08 17:35:26
回答 1查看 1.1K关注 0票数 1

我正在为我的项目从使用FMDatabase转变为领域。但是,我的SQL查询有如下问题:

代码语言:javascript
复制
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 = %@

我不知道如何将它转换成领域语法。

AreaModel:

代码语言:javascript
复制
@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:

代码语言:javascript
复制
@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:

代码语言:javascript
复制
@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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-11 21:09:33

因为领域是对象数据库而不是关系数据库,所以对象之间的关系直接表示。而不是间接使用主键和外键。例如,您的Table类可以使用以下方法表示它有一个Area

代码语言:javascript
复制
@property (nonatomic) Area *area;

这样的关系可以用于查询:

代码语言:javascript
复制
[Table objectsWhere:@"area.name = 'Some Area'"]

请注意,使用这种关系并不排除提供实例唯一标识符。唯一标识符仍然可以用于将本地对象映射到web服务上的对象,或者有助于在本地应用程序中的线程之间处理对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38272473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档