sql - 如何在sql中使用三个表的子查询

标签 sql oracle11g

我有三个表,例如:

客户

CUSTOMER#   LASTNAME    FIRSTNAME
1001    MORALES         BONITA
1002    THOMPSON        RYAN
1003    SMITH           LEILA
1004    PIERSON         THOMAS
1005    GIRARD          CINDY

订单

ORDER#  CUSTOMER#   ORDERDATE
1000    1005    31/MAR/09
1001    1010    31/MAR/09
1002    1011    31/MAR/09
1003    1001    01/APR/09

orderitems

ORDER#  ITEM#   ISBN    QUANTITY
1000    1   3437212490  1
1001    1   9247381001  1
1001    2   2491748320  1
1002    1   8843172113  2

我的问题是:如何打印订购超过 1 件商品的客户姓名(数量超过 1?

我的sql查询是这样的:

SELECT c.firstname, c.lastname
FROM customers c
WHERE (SELECT o.quantity FROM orderitems WHERE o.quantity > 1) 

上面的查询有什么错误?

最佳答案

这应该可以做到:

select c.firstname, c.lastname
from customer c
    join orders o on c.customer# = o.customer#
    join orderitems oi on o.order# = oi.order#
group by c.firstname, c.lastname
having sum(oi.quantity) > 1

关于sql - 如何在sql中使用三个表的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48317242/

相关文章:

php - mysql_num_rows 空

sql - 拆分字符串和数字列

mysql - 我如何获取 SQL 中新插入行的主键值,它应该适用于所有 SQL 库

database - 非sysdba可以编译dbms_session吗?

mysql - 是否可以像在 oracle SQL 中那样在 mySQL 中禁用/启用主键?

java - Oracle 不使用基于函数的索引来进行带有绑定(bind)变量的 regex_replace

php - 第一次加载时出现数据库错误,但刷新时没有

sql - 在 from 子句或 where 子句中进行等值连接哪个更好

php - SQL 语句不会限制。显示没有结果

oracle - 下划线在oracle like子句中不起作用