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_ID
和 Month_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
)
我有 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_ID
和 Month_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
)