根据第三个表的数据连接两个表

2020db9

我有 3 个表,为了这个练习,我们将它们称为:Products、Price 和 Discount。我正在尝试加入 Products 和 Price 表,仅当在 Discount.ProductID(折扣表中的 ProductID 列)中找到 ProductID 时。

产品:

产品编号 尺寸 颜色 参考编号
A1234 小的 蓝光 0C94
B5678 红色的 1D96

价钱:

参考编号 根据
0C94 3.48 0.96

折扣:

产品编号 列表 地点
A1234

我熟悉连接,所以我的代码开始为:

SELECT * FROM Product as a
left join Price as b
on a.Ref# = b.Ref#

但我从未在基于第三个表的 where 子句中嵌套约束(如果这甚至是正确的方法)。任何建议将不胜感激。最终结果将是一个仅显示一种产品的新产品表,因为 ProductID B5678 不在折扣表中。

米肉

如果不需要 Discount 表的任何内容,请使用exists()函数在 where 子句中执行子查询。这将为您提供最快的结果。

SELECT * 
FROM Product as a
   left join Price as b on a.Ref# = b.Ref#
WHERE EXISTS (
      SELECT *
      FROM Discount as c
      WHERE c.ProductID = a.ProductID
   )

但是,如果您确实需要一列或多列折扣,请在 Product 和 Discount 之间进行内部连接,在 ProductID 上连接它们。这将导致只有有折扣的产品,然后对价格进行另一个左连接,以将价格中的列也放入结果集中。请注意,如果一个 Product 行的 Discount 中存在多行,这将导致在多行中显示相同的产品。

SELECT * 
FROM Product as a
   inner join Discount as c on c.ProductID = a.ProductID
   left join Price as b on a.Ref# = b.Ref#

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

选择表单-在第三个表中链接两个表

计算从两个表关联到第三个表的行

如何从由第三个表连接的两个mySQL表中选择数据?

SQL:从两个表中选择与第三个表相关的数据

使用Oracle MERGE INTO将两个表中的数据合并到第三个表中

如何连接两个表(均从自连接派生)以创建第三个表?

使用INNER JOIN将两个表合并为第三个表

MySql从两个表中多次选择并将它们的结果连接到第三个表

将两个表中的值插入第三个表中

显示两个表的输出,但通过第三个表进行匹配

使用第三个表(SQL)连接两个表

如何使用第三个表SQL Server从两个相关的表中检索数据

当连接三个表时,MySQL不返回任何内容。两个表在第三个表中具有外键。怎么了?

比较两个工作表以创建第三个工作表

从其他两个表更新第三个表

如何连接两个表并按第三个表排序?

mysql根据第三个id创建两个表的视图

连接两个表+第三个表作为条件列

如何从两个相关表中获取数据并放入第三个表

按第三个表的条件过滤的两个表的分组计数查询

Django:将外键上的两个表连接到第三个表?

将两个不同的表与公共列上的公共第三个表连接起来

使用第三个表连接两个表

MYSQL根据第三个表中的关系连接两个表并连接第二个表中的数据

连接以第三个表为条件的两个表

从通过 PostgreSQL 中的第三个表连接的两个表中获取值

使用两个表中的条目从第三个表中选择数据

MySQL DATABASE - 使用第三个表连接两个表的 SQL 语句

使用两个外键连接两个表到第三个表