我需要使用子查询方法,找到标题为“room”的书作为订单的一部分的次数。
相关架构表
订单详细信息(ono、bookisbn、数量)
图书(isbn、书名、作者、流派、出版年份、出版商、rrprice、avgrating)
它以两种顺序出现,图书isbn和isbn是主键和外键
我试过了
SELECT Count(*)
FROM orderDetails
WHERE 'Room' in (SELECT title
FROM book)
尽管书房里只有两份订单,但它还是会返回25张。我能理解为什么它是错的,但我不知道我怎么称呼它的isbn的书(不只是键入323,因为这将是一个快捷方式)
4条答案
按热度按时间tyg4sfes1#
在我看来,加入会更好:
但如果必须使用子查询:
无论我们用哪种方法,我们总是要用公共域来得到
fjnneemd2#
where子句的计算结果要么为true,要么为false。它与外部查询不相关,因此:
“true”表示返回(并计数)所有行
“false”表示不返回(并计数)行
您可以使用correlation子句解决此问题:
txu3uszq3#
普通查询,不使用子查询:
异常查询,使用内部查询,我不建议这样做,因为这是不必要的,但我们来看看:
更不正常的子查询查询:
提示:
1我用过
count(1)
,因为,对所有列进行计数是没有意义的,因此,您可以只对条件的成功条目进行计数,这样会更快。2使用子查询会限制编译器的功能,因此,我建议不要使用它。
mu0hgdu04#
使用此查询
你可以用
Like
子查询中的运算符%Room%
为标题