SQL子查询 - 显示所有运送产品的国家/地区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL子查询 - 显示所有运送产品的国家/地区相关的知识,希望对你有一定的参考价值。

写一个查询,以显示所有运送产品的国家:Sir Rodney's Scones。

产品名称'Sir Rodney's Scones'和各国都在不同的表格中。这是我到目前为止所尝试的:

select country
from customers
where country =any (select productname
            from products
            where productname = 'Sir Rodney''s Scones'
             )

我知道multirow运算符是错误的,但我不知道用什么来代替它。它也必须是一个子查询。

答案

尝试

select country
from customers
where country in (select country
            from products
            where productname  in ('xyz','pqr')
             )

注意:您可以将'xyz'或'pqr'替换为您的产品名称

另一答案

您可以检查两种产品的产品中是否存在国家/地区。

SELECT DISTINCT country
FROM customers A
WHERE EXISTS (SELECT 1 FROM products B WHERE B.productName='Sir Rodney''s Scones'
              AND B.country=A.country);

现在更正您的查询:您的子查询应该返回一个国家/地区。

select country
from customers
where country in (select country
            from products
            where productname='Sir Rodney''s Scones'
             );
另一答案

您应该加入客户订单详细信息,以了解客户购买该产品的信息。并使用distinct来获得独特的国家

  select    distinct Country
  from      Customers c
  join      Orders o on c.CustomerID = o.CustomerID
  join      OrderDetails od on o.OrderID = od.OrderID
  join      Products p on od.ProductID = p.ProductID
  where     p.ProductName = 'Sir Rodney''s Scones'

或者您可以使用订单表中的ShipCountry。

  select    distinct ShipCountry
  from      Orders o
  join      OrderDetails od on o.OrderID = od.OrderID
  join      Products p on od.ProductID = p.ProductID
  where     p.ProductName = 'Sir Rodney''s Scones'

如果你需要子查询

  select    distinct ShipCountry
  from      Orders o
  where     o.OrderID in (
                select      OrderID 
                from        OrderDetails od
                where       od.ProductID in (
                                select      ProductID
                                from        Products p
                                where       p.ProductName = 'Sir Rodney''s Scones'
                            )
            )

以上是关于SQL子查询 - 显示所有运送产品的国家/地区的主要内容,如果未能解决你的问题,请参考以下文章

使用子查询和分组依据每天计算每个国家/地区的 DAU 平均值

如何根据状态编写过滤国家/地区的 sql 查询

sql 所有国家/地区代码,电话代码的Sql转储。

sql 所有国家/地区代码,电话代码的Sql转储。

SQL子查询计数

SQL查询显示已在一个国家销售而不是另一个国家的产品