SQL Select 行的列值与不同 table 中的列值匹配

SQL Select rows with column values that match column values in different table

我有 Table A,其中包含 'CustomerID' 和 'MONTH' 列,以及始终相同的 'PRODUCT' 列,例如产品 X

我还有 Table B,其中包含列 'CustomerID' 和 'MONTH',但是这个 table 包含很多产品,而不仅仅是 X。

我正在尝试从 Table B(很多产品)中 select 行,其 'CustomerID' 和 'MONTH' 匹配 Table A 中的一行,这样我就得到了客户在购买 Product X

的同一个月内购买的产品

我试过以下方法:

PROC SQL;
   CREATE TABLE DATA.RESULT AS
   SELECT LOTS.Customer_ID, 
          LOTS.Product_Name, 
          LOTS.Order_Revenue, 
          LOTS.Month_Ordered
   FROM DATA.Family_Holiday_Orders_Plus AS LOTS
   INNER JOIN DATA.X AS X1 ON (X1.Customer_ID = LOTS.Customer_ID)
   INNER JOIN DATA.X AS X2 ON (X2.Month_Ordered = LOTS.Month_Ordered);
QUIT;

如果我理解正确,你想要 select 来自 LOTS 的所有产品,其中 DATA.X 中的另一行具有相同的 Customer_IDMonth_Ordered 值存在。

SELECT LOTS.Customer_ID, 
       LOTS.Product_Name, 
       LOTS.Order_Revenue, 
       LOTS.Month_Ordered
FROM DATA.Family_Holiday_Orders_Plus AS LOTS
WHERE EXISTS (
    SELECT 1 FROM DATA.X AS X1 WHERE X1.Customer_ID = LOTS.Customer_ID
    AND X1.Month_Ordered = LOTS.Month_Ordered
)