首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql操作符和in操作符

sql操作符和in操作符
EN

Stack Overflow用户
提问于 2014-01-04 20:55:58
回答 1查看 89关注 0票数 0

我有以下代码,运行良好:

代码语言:javascript
复制
select 
     M.value1, P.value2 
from 
     table 1 P
join 
     table 2 E on (P.value2 = E.value2)
join 
     table 3 M on ( something else here)
where 
     P.value2 in (select value1 
                  from table 4
                  where (value 2 = “aaa”) and (value 3 = “bbb))

在这里,表1的列名为值2,我将其与表2连接,表2在指定的条件下也有名为value 2的列。然后,根据其他条件,将结果与表3连接起来。然后添加where运算符和in运算符,这将根据指定的条件从表4返回一些特定的value1值。因此,一些不需要的P.value2值将被跳过。

现在我的问题是:如果我有另一个表,比如表5,它有名为value1、值2和值3的列,如何进一步对P.value2值进行排序呢?我只想保留P.value2值,这些值只对应于某些标准。我试过这段代码,但没成功:

代码语言:javascript
复制
select 
    M.value1, P.value2 
from
    table 1 P 
join 
    table 2 E on (P.value2 = E.value2) 
join 
    table 3 M on ( something else here) 
where 
    P.value2 in (select value1 
                 from table 4 
                 where (value2 = “aaa”) and (value3 = “bbb))
    and P.value2 in (select value1 
                     from table 5 
                     where (P.value2 = value1) and (value3 = “ccc”))  
    or P.value2 in (select value2 
                    from table 5
                    where (P.value2 = value2) and (value3 = “ccc”))

这是使用where操作符的正确方法吗?我如何优化它?再一次,我想要实现的是增加这一点:

和P.value2 in (从表5中选择value1 (P.value2 = value1)和(value3 =“ccc”))或P.value2 (从表5中选择value2 (P.value2 = value2)和(value3 =“ccc”))

根据表5中的值获得所需的P.value 2值。谢谢您的帮助!

所以我们把表连在一起说:

代码语言:javascript
复制
value1 value2 value3 value1 value2 value1 value2
------ ------ ------ ------ ------ ------ ------
bbbbb1 aaaaa1 ccccc1 ddddd1 aaaaa1 eeeee1 fffff1
bbbb24 aaaa24 cccc24 dddd24 aaaa24 eeee24 ffff24
bbbb32 aaaa32 cccc32 dddd32 aaaa32 eeee32 ffff32
bbbb42 aaaa42 cccc42 dddd42 aaaa42 eeee42 ffff42
..... etc

我们有所选的(排序)表:

代码语言:javascript
复制
value1 value2
------ ------
eeeee1 aaaaa1
eeee24 aaaa24
eeee32 aaaa32
...etc 

现在,我想使用表5对这个表进行进一步的排序,我:

代码语言:javascript
复制
value1 value2 value3
------ ------ ------
12223  aaaa12 ccc
12334  aaaa32 bbb
aaaa1  123344 ccc
12332  aaaa24 ccc

因此,这里应该保留aaaa1和aaaa24,并从最后一个表中移除aaaa32。

EN

回答 1

Stack Overflow用户

发布于 2014-01-04 21:46:00

变化

代码语言:javascript
复制
and P.value2 in (select value1 from table 5
where (P.value2 = value1) and (value3 = “ccc”)) 
or P.value2 in (select value2 from table 5
where (P.value2 = value2) and (value3 = “ccc”))

代码语言:javascript
复制
and P.value2 in (select value1 from table 5
where (P.value2 = value1 OR P.value2 = value2) and (value3 = “ccc”))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20926651

复制
相关文章

相似问题

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