mysql - 如何在sql查询中识别客户和供应商

标签 mysql sql

你好 Stack Overflow 社区!我希望有人可以帮助传递一些建议,说明此查询是否正常,是否可以进行任何改进,以及我如何确定某行是客户还是供应商。我已经在下面发布了我的代码,在此先感谢您的帮助!

Northwind Traders 的代表将在德国。管理层希望她在德国访问所有供应商和客户。提供德国所有供应商和客户的 list ,包括联系方式和地址。在报告中指定所列公司是客户还是供应商。

select *  
from
  Suppliers s
  inner join Products p
    on s.SupplierID = p.SupplierID
  inner join OrderDetails od
    on p.ProductID = od.ProductID
  inner join Orders o
    on od.OrderID = o.OrderID
  inner join Customers c
   on o.CustomerID = c.CustomerID
where
  (s.Country = 'Germany') 
  and (c.Country = 'Germany')

最佳答案

要仅在一个 Select 中解析并且不对 SQL 进行任何其他操作,您可以使用 UNION 获取供应商和客户的列:

select 'Supplier' partnerType, s.name, s.contact, s.address 
from Suppliers s inner join Products p on s.SupplierID = p.SupplierID
                 inner join OrderDetails od on p.ProductID = od.ProductID
                 inner join Orders o on od.OrderID = o.OrderID
where 
 (s.Country = 'Germany')
Union
Select 'Customer' partnerType, c.name, c.contact, c.address 
from Suppliers s inner join Products p on s.SupplierID = p.SupplierID
                 inner join OrderDetails od on p.ProductID = od.ProductID
                 inner join Orders o on od.OrderID = o.OrderID
                 inner join Customers c on o.CustomerID = c.CustomerID
where 
 (c.Country = 'Germany')

要确定是供应商还是客户,仅使用列 partnerType。

关于mysql - 如何在sql查询中识别客户和供应商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43023318/

相关文章:

javascript - Node.js mysql错误无法读取未定义的属性?

php - Laravel - 数据库查询约定/标准实践

sql - 设计表格时如何实现一对一、一对多和多对多的关系?

R中的sqlSave以创建数据帧并将其保存到sql表

sql - 在带有嵌套表列 sql oracle 的表中查找不相交的集合

mysql - 2 个数据库之间更快的 mysql 查询

mysql - Lua mysql,需要一种方法来转义数据

php - Laravel 下拉列表

mysql - 需要有关查询总和显示错误输出的帮助

sql - Oracle SQL -WITH 子句列名的数量与选择列表中的元素数量不匹配