如何使两个“选择”相交然后为结果设置另一个条件

发布于 2024-09-03 18:12:53 字数 125 浏览 4 评论 0 原文

我想交叉两个“选择”查询,然后为整个结果设置另一个条件。我的意思是:

(select ... intersect select ...) where ...

这可能吗?

I want to intersect two "select" queries and then put another condition for the whole result. I mean:

(select ... intersect select ...) where ...

is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

咿呀咿呀哟 2024-09-10 18:12:53

取决于您的数据库风格
Oracle(例如)将允许这样做:

SELECT *
  FROM ( SELECT *
           FROM TABLE_A
         INTERSECT
         SELECT *
           FROM TABLE_B
       )
WHERE <conditions>

Depends on your flavour of database
Oracle (for example) will allow this:

SELECT *
  FROM ( SELECT *
           FROM TABLE_A
         INTERSECT
         SELECT *
           FROM TABLE_B
       )
WHERE <conditions>
带上头具痛哭 2024-09-10 18:12:53

Select * From (select ... intersect select ...) as intersectedTable where ...

Select * From (select ... intersect select ...) as intersectedTable where ...

长发绾君心 2024-09-10 18:12:53

您想要使用派生表。

    SELECT value,data FROM
    (SELECT value,data FROM table1 union select value,data from table2) t
    WHERE value=5;

You want to use a derived table.

    SELECT value,data FROM
    (SELECT value,data FROM table1 union select value,data from table2) t
    WHERE value=5;
污味仙女 2024-09-10 18:12:53

由于您是相交的,因此您在两个 SELECT 中的任何一个上设置的任何条件也将适用于整个条件...

因此,最简单的方法就是

SELECT ... FROM ... WHERE (condition)
INTERSECT
SELECT ... FROM ... WHERE (another condition)        

Since you are intersecting, any condition you put on the either of the two SELECTs will also apply to the whole condition...

So, the easiest way is to just

SELECT ... FROM ... WHERE (condition)
INTERSECT
SELECT ... FROM ... WHERE (another condition)        
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文