이것이 내 핵심 DB 테이블의 구조입니다. 조건 자에 하위 쿼리를 만들고자합니다. 아래는 쿼리에 대한 설명입니다.
SubmisisonField.value가 배열과 일치하는 모든 고유 제출을 생성합니다. 이 쿼리는 상단 이미지입니다.
Employee 테이블 요청이있는 두 번째 이미지의 경우 : Generate all ActivityFeedCard, 여기서 직원 이름이 문자열과 일치합니다. 이제 Employee의 id 필드는 SubmissionField.value와 동일한 필드이거나 SubmissionField.value == Employee.id라고 말할 수 있습니다. 우리는 직원의 이름, 성 등으로 검색해야합니다. 정말 감사합니다.
let fetchCardsContext = CoreDataManager.shared.getNewBackgroundContext(name: "Fetch Cards for display BG Context")
var predicate: NSPredicate?
self.displayedCards.removeAll()
predicate = NSPredicate(format: "SUBQUERY(submission.submissionTemplate.submissionField.value, $v, $v IN %@).@count > 0", empArray)
self.displayedCards = ActivityFeedCard.fetchAndSort(in: fetchCardsContext, predicate: predicate, sortOptions: nil) ?? [ActivityFeedCard]()
"모든 고유 제출물 생성"을 원합니다. 따라서 가져 오기 요청은 Submission
엔티티를 기반으로해야합니다 . Submission
엔티티와 관련하여 submissionTemplate.submissionField.value
컬렉션입니다 ( submissionField
관계가 대다 이기 때문 ). Submission
컬렉션이 "배열과 일치" 하는 개체 만 가져 오기에 포함하려고합니다 . "컬렉션과 배열에 공통된 값이있는 경우"를 의미한다고 가정하면 사용할 술어는 다음과 같습니다.
NSPredicate(format:"SUBQUERY(submissionTemplate.submissionField.value, $v, $v IN %@).@count > 0",yourArray)
또는 단어 : "는 count
의 (값, $v
상기에서 submissionTemplate.submissionField.value
이다 컬렉션 IN
어레이)는 0보다 크다".
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다