【发布时间】:2017-07-15 07:45:00
【问题描述】:
我有两个表 A 和 B,当所有子项(在表 B 中)都符合条件时,我只想要父 A 的行。如果 B 中的一行不符合条件,那么我不需要父 A 的行。我想我需要在这里使用exists,但不显示如何。
以下是数据表:
表A
Primary Key Level
1 low
2 low
3 high
4 high
5 low
表 B
Primary Key Phase Parent Primary Key
1 open 1
2 open 1
3 close 1
4 close 2
5 close 2
6 close 3
7 open 4
8 open 4
9 open 5
10 close 5
我正在尝试的查询:
select *
from table_a, table_b
where table_a.level = 'low' and
table_b.phase = 'close' and
table_a.primary_key=table_b.parent_primary_key
但我的查询也会返回 table_a.primary_key = 5 的行。
基本上,我想要返回的唯一行是 table_A.primary_key = 2 因为级别较低,并且两个子行的相位都等于关闭。
谢谢!
【问题讨论】:
-
您是否尝试过 完全 那样,将单词
low和close不包含在单引号中,但仍然得到结果?那甚至不应该编译(你应该得到一个“无效的标识符”错误)。 -
不,抱歉,我在低位和收盘时有报价。我在尝试按原样发布时遇到问题。