SQL中的Divide select不起作用
你能帮我用SQL中的除法选择吗?我使用Oracle Apex Express版本。我有三张桌子。英文原名在括号中:用户Uzivatel、事件Udalost和用户组Skupina_。它们的上下文显示在屏幕上: 现在我必须在SQL中使用divide-select。此选择已制定:您必须显示参与所有事件的所有用户。在我的表中,您可以看到我有两个用户,他们参与了所有事件。他们是“SK2”组的一部分。我使用此选择:SQL中的Divide select不起作用,sql,oracle,select,Sql,Oracle,Select,你能帮我用SQL中的除法选择吗?我使用Oracle Apex Express版本。我有三张桌子。英文原名在括号中:用户Uzivatel、事件Udalost和用户组Skupina_。它们的上下文显示在屏幕上: 现在我必须在SQL中使用divide-select。此选择已制定:您必须显示参与所有事件的所有用户。在我的表中,您可以看到我有两个用户,他们参与了所有事件。他们是“SK2”组的一部分。我使用此选择: select * from Uzivatel where not exists (se
select *
from Uzivatel
where not exists (select *
from Skupina_u
where not exists (select *
from Udalost
where Skupina_u.ID_uz = Uzivatel.ID_uz
and Skupina_u.ID_uz = Udalost.ID_uz))
但结果是:没有找到任何数据
谢谢你的帮助。这是对你用英语提出的问题的回答。查找参与所有事件的所有用户 这是集合内集合查询的一个示例。我认为最好的方法是使用聚合,因为相同的结构可以用于许多问题。让我向您展示如何使用表和列的英文名称:
select eu.UserId
from User_Events eu
group by eu.UserId
having count(distinct eu.EventId) = (select count(*) from Events e)
也就是说,选择事件表中不同事件ID数为数字的所有用户。如果只希望事件具有用户,请使用以下having子句:
这是在回答你用英语提出的问题。查找参与所有事件的所有用户 这是集合内集合查询的一个示例。我认为最好的方法是使用聚合,因为相同的结构可以用于许多问题。让我向您展示如何使用表和列的英文名称:
select eu.UserId
from User_Events eu
group by eu.UserId
having count(distinct eu.EventId) = (select count(*) from Events e)
也就是说,选择事件表中不同事件ID数为数字的所有用户。如果只希望事件具有用户,请使用以下having子句:
您指的是哪两个用户?他们参加了哪些活动?还有其他桌子吗?表事件Udalost的主键是什么?您指的是哪两个用户?他们参加了哪些活动?还有其他桌子吗?哪个是表事件Udalost的主键?@ypercube我认为用户Martin和Diana,因为他们属于SK2组。这一群体与每一事件都有关联。表Udalost中的主键是屏幕上的ID_ud作为ID。他们前往阿姆斯特丹和布拉迪斯拉发参加活动。表Udalost有两个外键ID_o Skupina_的主键和ID_uz表Uzivatel的主键。Gordon Linoff:谢谢,但我必须使用not exists的语法。我更新了屏幕,添加了表名和主键名。这个答案足够了,但用户_Events.EventId必须有一个引用Events.EventId.So的外键约束,在这种情况下,我不能使用语法with not exists…?使用此选择:从不存在的Uzivatel中选择Meno_从Skupina_中选择*从Skupina_中选择,其中Skupina_.ID_uz=Uzivatel.ID_uz而不存在从Udalost中选择*Skupina_.ID_uz=Udalost.ID_uz我从表Uzivatel获取所有用户。。。但现在我只需要显示两个参加所有活动的用户——马丁和戴安娜。他们属于SK2组。@ypercube我认为是用户Martin和Diana,因为他们属于SK2组。这一群体与每一事件都有关联。表Udalost中的主键是屏幕上的ID_ud作为ID。他们前往阿姆斯特丹和布拉迪斯拉发参加活动。表Udalost有两个外键ID_o Skupina_的主键和ID_uz表Uzivatel的主键。Gordon Linoff:谢谢,但我必须使用not exists的语法。我更新了屏幕,添加了表名和主键名。这个答案足够了,但用户_Events.EventId必须有一个引用Events.EventId.So的外键约束,在这种情况下,我不能使用语法with not exists…?使用此选择:从不存在的Uzivatel中选择Meno_从Skupina_中选择*从Skupina_中选择,其中Skupina_.ID_uz=Uzivatel.ID_uz而不存在从Udalost中选择*Skupina_.ID_uz=Udalost.ID_uz我从表Uzivatel获取所有用户。。。但现在我只需要显示两个参加所有活动的用户——马丁和戴安娜。他们属于SK2组。