SQL - 比较来自两个不同 table 的列值

SQL - compares column values from two different table

我是 SQL 服务器的新手,想知道我应该如何处理以下情况:

我有两个 table:

第一个table有这个月的订单,有以下数据

Product Order
First 2000
Second 3000

...和 ​​10000 行

和第二个 table 具有下个月的预期订单并具有以下数据:

Product Order
First 3000
Second 1000

...和 ​​12000 行。

现在,我想查看第 2 个 table 中的产品,其中预期订单数超过第 1 个 table 中“订单”列中的值。 例如。在我们的例子中输出应该是

| Product |
| First |

你能帮我解决这个问题吗,因为列名很相似?

您可以使用别名按产品名称加入他们,并比较他们的订单

select eo.product, eo.order from current_orders co 
    join exp_orders eo on co.product = eo.product 
where eo.order < co.order;

你必须使用内连接命令,语法是这样的:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

内部联接将为您提供两个表中条件为真的行,然后您为所需的其他条件添加 AND,如下所示:

SELECT Product,Orders
FROM table2
INNER JOIN table1
ON table2.Product = table1.Product AND table2.Product > table1.Product ;

使用 exists 检查所需条件:

select *
from table2 t2
where exists (
  select * from table1 t1
  where t1.product = t2.product
    and t2.order > t1.order
);