我有几张看起来像这样的表
-- TablePair
pairId ID value
p1 1 'val1'
p2 2 'val2'
p3 3 'val3'
p4 4 'val4'
此外,我还有一个引用该表的表
-- TableObject
objectId refId
ob1 p1
ob1 p2
ob1 p3
ob2 p3
我想只选择包含1 = val1, 2 = val2, 3)
和值('val1', 'val2', 'val3')
的对象。在我们的例子中,它只是对象ob1
。在其他情况下,它应该什么也不返回。
当我喜欢这个时
select objectId from TablePair
inner join TableObject
where (id = '1' and value = 'val1')
or (id = '2' and value = 'val2')
or (id = '3' and value = 'val3')
它返回相同的三个对象。我添加distinct
,它返回正常。
但如果我至少有一个条件工作,它仍然返回该对象。但是我希望在这种情况下不返回任何内容。
怎么做? (它应该与DMS无关)
预期结果应为ob1
1 'val1'
2 'val2'
3 'val3'
因为它引用了pairId
中的TableObject
。
对于ob2
,它应该返回null
,因为ob2
只引用一个条件
答案 0 :(得分:0)
您可以尝试以下查询
TableObject
即使ob1 p4
中有YourViewController *city = [self.storyboard instantiateViewControllerWithIdentifier:@"YourViewController"];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.5];
[self.navigationController pushViewController:city animated:YES];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
的记录,上面的查询也会给我以下结果,
希望这会帮助你。