Mysql 如何查询多个不相关的表?
基本上我有三个表,我想从这三个表中选择属性Mysql 如何查询多个不相关的表?,mysql,sql,select,inner-join,Mysql,Sql,Select,Inner Join,基本上我有三个表,我想从这三个表中选择属性 SELECT Users.Name, Sales.SaleID, Return.ReturnAmount FROM Users INNER JOIN Sales ON Users.SaleID = Sales.SaleID 但是,退货与销售有关,而与用户无关 我应该如何包括退货金额?既然你说退货与销售有关系,那么下面的方法应该有效。只需查看您需要将Return与Sales连接在一起的列 SELECT Users.Name, Sales.SaleID
SELECT Users.Name, Sales.SaleID, Return.ReturnAmount
FROM Users
INNER JOIN Sales ON Users.SaleID = Sales.SaleID
但是,退货与销售有关,而与用户无关
我应该如何包括退货金额?既然你说退货与销售有关系,那么下面的方法应该有效。只需查看您需要将Return与Sales连接在一起的列
SELECT Users.Name, Sales.SaleID, Return.ReturnAmount
FROM Users
INNER JOIN Sales
ON Users.SaleID = Sales.SaleID
INNER JOIN Return
ON Return.SaleID = Sales.SaleID -- You said Return has relationship with Sales.
给定这些表名,我能想到的最可能的查询是:
SELECT u.Name, s.SaleID, r.ReturnAmount
FROM Users u INNER JOIN
Sales s
ON u.UserID = s.UserID INNER JOIN
Returns r
on r.SaleID = s.SaleID;
这将是一个非常不寻常的数据布局,在
用户
表中有一个SaleID
。显示该表的布局,以及一些示例数据(通过编辑问题)。很容易加入该表。只需在1=1时添加joinreturn
。但是,如果该表不相关,您将如何确定应该显示哪些值?在最坏的情况下,笛卡尔乘积将返回Sales
和Users
表的所有行(具有有效的JOIN
,乘以Return
表中的行数。@SchmitzIT But Return与sales相关,因此sales.SaleID=Return.SaleID,但Return与用户无关我想知道为什么用户与销售之间的关系在SalesID
上,尽管:在Users.SaleID=sales.SaleID
上,一个销售有很多用户,每个用户都与一个销售相关?这看起来不是正确的设计。@user2525364-这是有意义的。因此,您JOIN
he使用这些条件将表返回到集合中。JOIN
不需要连接所有表(这是不可能的),而是将与集合的一部分相关的信息串在一起。