首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >grouping IN语句sql

grouping IN语句sql
EN

Stack Overflow用户
提问于 2011-06-15 10:41:35
回答 2查看 101关注 0票数 2

假设我有一个名为table1的表,例如,它对应的列是col1、col2、col3和col4。

什么是与做相同的事情:

代码语言:javascript
复制
-- note that the following query will not work
SELECT * 
  FROM table1 
 WHERE col1, col2 IN (SELECT col1, col2 
                        FROM table1 
                       WHERE col3 < 4)

我必须在我的数据库中合并col1和col2才能工作吗?如果我将col1和col2合并到col1_2中,那么我将能够通过编写以下代码来执行上面的查询:

代码语言:javascript
复制
SELECT * 
  FROM table1 
 WHERE col1_2 IN (SELECT col1_2 
                    FROM table1 
                   WHERE col3 < 4)

当使用一列时,IN子句可以正常工作。如果我可以在不修改数据库的情况下将它与多个列一起使用,那就太好了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-15 10:53:40

代码语言:javascript
复制
SELECT * from table1 t1, table1 t2
where t1.col1=t2.col1 and t1.COl2=t2.Col2 and t1.col3<4

试试这个

票数 3
EN

Stack Overflow用户

发布于 2011-06-15 10:56:31

等同于您所展示的是:

代码语言:javascript
复制
SELECT *
FROM table1 tb1
WHERE EXISTS
(
    SELECT *
    FROM table1 tb2
    WHERE 
        tb1.col1 = tb2.col1 and 
        tb1.col2 = tb2.col2 and
        tb2.col3 < 4
)

但是,此查询没有多大意义,因为它等效于

代码语言:javascript
复制
SELECT *
FROM table1 tb1
WHERE tb2.col3 < 4

我只是假设你展示的例子没有经过深思熟虑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6352448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档