SQL: 将两个表的结果合并为一个结果

SQL: Merging results from two tables into one result

我已经开始深入研究 joins/apply/unions,等等,但有一个概念我认为我不明白,我希望能得到帮助。假设我有两个表,tabone 和 tabtwo。

在禁忌中:

product color
Eggs Tan
Milk White

在标签二中:

product price
Eggs 1.50
Milk 2.00

我想学习如何编写查询,在单个结果中显示任何给定产品的产品、颜色和价格。

我想要的示例输出:

product price color
Eggs 1.50 Tan

从我目前收集到的信息来看,我不太明白联接或联合如何在一个结果中实现这一目标。我的所有测试都为我提供了多列颜色,例如不合并。如果能提供一些帮助,我将不胜感激!

SELECT t1.product, price, color
FROM tabone t1
JOIN tabtwo t2
ON t1.product = t2.product

免责声明:我也是 SQL 的新手 lol

您至少可以通过 3 种方式连接 两个表。

您可以内部联接,使用相关子查询应用相关。如果 product 是唯一的,所有工作都按预期进行:

select t1.product, t2.price, t1.color
from tabone t1
join tabtwo t2 on t2.product = t1.product;

select product,
  (select price from tabtwo t2 where t2.product = t1.product) price,
  color
from tabone t1;

select t1.product, t2.price, t1.color
from tabone t1
cross apply (
  select price 
    from tabtwo t2 
    where t2.product = t1.product
) t2;