作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
假设我们在数据库中有以下关系:
likes(moviefanname, movietitle)
将粉丝与他们喜欢的电影联系起来,其关键是 2 个属性的组合。假设moviefanname和movietitle都是字符串。shows(cinema, movietitle, ticketprice)
指示每个电影院放映的电影以及费用。它的关键是前两个属性的组合。假设 cinema 是一个字符串,ticketprice 是一个整数。
我想找到至少放映一部 Fred 喜欢的成本低于 8 美元的电影的电影院。
我创建的查询如下:
select cinema
from (
select *
from (
select tmp1.movietitle
from likes tmp1, shows tmp2
where moviefanname = 'Fred' and tmp1.movietitle = tmp2.movietitle) as foo
where ticketprice < 8) as foo2) as foo3
首先,我加入了 2 个表,它们的共同属性将 moviefanname 限制为“Fred”。然后我只保留票价为 8 或以下的元组,最后我做了一个投影,只保留那些电影院的名称。我试图在 pgadmin SQL 编辑器中执行它但没有成功,因为它显示第 8 行的列 ticketprice 不存在的错误。所以,我想问一下逻辑是否正确,我很乐意了解为什么会出现这个错误。
最佳答案
尝试
select distinct cinema
from likes
inner join shows on
likes.movietitle = shows.movietitle
where (moviefanname = 'Fred') and (ticketprice < 8)
关于sql - 在简单的 SQL 查询中级联选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24412129/
我是一名优秀的程序员,十分优秀!