首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据其他值选择值SQL?

根据其他值选择值SQL?
EN

Stack Overflow用户
提问于 2013-08-20 08:35:15
回答 2查看 71关注 0票数 1

我不知道这个问题的标题是什么,所以如果标题有误导性,我向您道歉。

我在表MovieIDFormat中有两列(我还有更多列,但这是我关注的重点。

在“格式”列中有两种类型的值:“DVD”和“蓝光”。我想选择只有DVD格式的电影。请注意,有多部影片具有蓝光和DVD格式,我不想显示这些值。请参阅下面的小提琴,以获取我的数据示例。谢谢!

http://sqlfiddle.com/#!2

代码语言:javascript
运行
复制
MovieID | Format
-----------------
1000    DVD
1000    DVD
1000    Blu-ray
1001    DVD
1001    DVD
1002    DVD
1003    DVD
1003    Blu-ray
1004    DVD

我想输出

代码语言:javascript
运行
复制
MovieID
------------
1001    
1002     
1004     
EN

回答 2

Stack Overflow用户

发布于 2013-08-20 08:40:11

实现这一目标的一种简单方法如下:

代码语言:javascript
运行
复制
SELECT DISTINCT (MovieID)
FROM Movies m
WHERE Format='DVD'
AND NOT EXISTS (
    SELECT * FROM Movies mm WHERE mm.MovieID=m.MovieID AND mm.Format='Blu-ray'
)

这在很大程度上是将问题的英文描述翻译成SQL语法。

票数 2
EN

Stack Overflow用户

发布于 2013-08-20 08:40:20

代码语言:javascript
运行
复制
select MovieID
from Table
where Format = 'DVD'
  and MovieID not in (select MovieID from Table where Format <> 'DVD')

不要担心它看起来效率低下,如果你有适当的索引,一个好的DBMS会把它优化成高效的代码。

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

https://stackoverflow.com/questions/18325186

复制
相关文章

相似问题

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