select * 来自 (select * 来自 table)
select * from (select * from table)
我有一个 table 可以记录赞助人是否在其帐户上标记了特定标志。当标志被标记时,它将标志添加到赞助人标志 table,即
patronid flagnumber flagvalue
123 200 1
如果赞助人从未拥有过旗帜,则他们不会在赞助人旗帜中列出 table。
我使用以下查询来查找具有标志 1 但没有标志 2 的顾客。我没有弄清楚的是如何获得赞助人姓名,以便我可以发送报告。 patronid 是主键,patronfirst 和 patronlast 是字段。
select getpik(patronid) from
(
Select pf.patronid from patronflags pf, pers p where pf.patronid = p.id_pers and pf.flagnumber = '2'
minus
Select pf.patronid from patronflags pf, pers p where pf.patronid = p.id_pers and pf.flagnumber = '2'
)
我更喜欢使用 group by
和 having
找到标志 1 而不是标志 2 的顾客:
select pf.patronid
from patronflags pf
group by pf.patronid
having sum(case when pf.flagnumber = '1' then 1 else 0 end) > 0 and
sum(case when pf.flagnumber = '2' then 1 else 0 end) = 0
您可以将其用作子查询,只需加入人员信息即可:
Select p.*
from (select pf.patronid
from patronflags pf
group by pf.patronid
having sum(case when pf.flagnumber = '1' then 1 else 0 end) > 0 and
sum(case when pf.flagnumber = '2' then 1 else 0 end) = 0
) pf join
pers p
on pf.patronid = p.id_pers ;
您应该学习正确的 join
语法。切勿在 from
子句中使用逗号。
我有一个 table 可以记录赞助人是否在其帐户上标记了特定标志。当标志被标记时,它将标志添加到赞助人标志 table,即
patronid flagnumber flagvalue
123 200 1
如果赞助人从未拥有过旗帜,则他们不会在赞助人旗帜中列出 table。
我使用以下查询来查找具有标志 1 但没有标志 2 的顾客。我没有弄清楚的是如何获得赞助人姓名,以便我可以发送报告。 patronid 是主键,patronfirst 和 patronlast 是字段。
select getpik(patronid) from
(
Select pf.patronid from patronflags pf, pers p where pf.patronid = p.id_pers and pf.flagnumber = '2'
minus
Select pf.patronid from patronflags pf, pers p where pf.patronid = p.id_pers and pf.flagnumber = '2'
)
我更喜欢使用 group by
和 having
找到标志 1 而不是标志 2 的顾客:
select pf.patronid
from patronflags pf
group by pf.patronid
having sum(case when pf.flagnumber = '1' then 1 else 0 end) > 0 and
sum(case when pf.flagnumber = '2' then 1 else 0 end) = 0
您可以将其用作子查询,只需加入人员信息即可:
Select p.*
from (select pf.patronid
from patronflags pf
group by pf.patronid
having sum(case when pf.flagnumber = '1' then 1 else 0 end) > 0 and
sum(case when pf.flagnumber = '2' then 1 else 0 end) = 0
) pf join
pers p
on pf.patronid = p.id_pers ;
您应该学习正确的 join
语法。切勿在 from
子句中使用逗号。