我想获得如下结构的数据。
//像这样的媒体表:: -
import UIKit
@objc(Media)
class Media: DBObject {
dynamic var media_id : NSNumber!;
dynamic var post_id : Post!;
dynamic var desc : String!;
dynamic var url : String!;
}
我想从" 发布"获取数据媒体列表来自" 媒体"表
一个帖子可能是多个媒体或可能不是(媒体列表为零)。
请建议DBAccess Query在Swift中获取DBResultSet。
答案 0 :(得分:1)
您在查询中添加了一个参数 joinTo 。
以下是头文件中的条目。
/**
* Used to include "joined" data within the query string, you must use the tablename.columnname syntax within a where statement
*
* @param (Class)joinTo the class you would like to pwrform a SQL JOIN with
* @param (NSString*)leftParameter the property name that you would like to use within the local object to match against the target
* @param (NSString*)targetParameter the property within the class you wish to join with that will be matched with the left parameter.
* @return (DBQuery*) this value can be discarded or used to nest queries together to form clear and concise statements.
*/
- (DBQuery*)joinTo:(Class)joinClass leftParameter:(NSString*)leftParameter targetParameter:(NSString*)targetParameter;
swift中的示例,链接两个表(Employee& Login)如下所示。
Employee.query().joinTo(Login, leftParameter: "login", targetParameter: "Id")
显然,该类在运行时无法更改,因此您可以在Dictionary对象中找到结果, joinedResults
虽然你所描述的与关系有很大关系,但我建议你看看这里的一对多例子:
Relating two objects in DBAccess
因此,在您的特定情况下,您可以将以下方法添加到Post类中。
func media -> DBResultSet {
return Media.query().whereWithFormat("post_id = %@", withParameters: [self.post_id]).fetch()
}
这将查找并返回媒体表中的结果。