嗨,我有以下这两个问题和我的尝试。请给我一些建议。
SQL数据库:
CUSTOMER
表:CUST_ID
,CUST_NAME
,...
PRODUCT
表:PROD_ID
,PROD_DESCRIPTION
,...
CUSTOMER_PRODUCTS
表:CUST_ID
和PROD_ID
。
此数据库用于跟踪客户拥有的产品,因此CUSTOMER_PRODUCTS
为客户拥有的每种产品都有一个条目。
我想:
答
编写一个SQL查询,该查询将返回所有不拥有任何产品的客户的列表。
这是我的尝试:
SELECT CUSTOMER _PRODUCTS.CUST_ID, CUSTOMER.CUST_ID, CUSTOMER.CUST_NAME
FROM CUSTOMER
INNER JOIN CUSTOMER_PRODUCTS
ON CUSTOMER_PRODUCTS.CUST_ID != CUSTOMER.CUST_ID;
B:
编写一个SQL查询,该查询将返回所有拥有名称为“SAW”的产品的客户的列表。
这是我的尝试:
SELECT CUSTOMER _PRODUCTS.CUST_ID, CUSTOMER.CUST_ID, CUSTOMER.CUST_NAME
FROM CUSTOMER
INNER JOIN CUSTOMER_PRODUCTS
ON CUSTOMER_PRODUCTS.CUST_ID = CUSTOMER.CUST_ID and WHERE PROD_DESCRIPTION LIKE 'SAW';
你们觉得怎么样?我朝着正确的方向前进了吗?
答案 0 :(得分:0)
对于 A ,您可能希望使用LEFT JOIN
和IS NULL
:
SELECT CUSTOMER.CUST_NAME
FROM CUSTOMER
LEFT JOIN CUSTOMER_PRODUCTS ON CUSTOMER.CUST_ID = CUSTOMER_PRODUCTS.CUST_ID
WHERE CUSTOMER_PRODUCTS.CUST_ID IS NULL;
对于 B ,请问单独的问题,因为它是分开的。
答案 1 :(得分:0)
对于B
SELECT CUSTOMER _PRODUCTS.CUST_ID, CUSTOMER.CUST_ID, CUSTOMER.CUST_NAME
FROM CUSTOMER
INNER JOIN CUSTOMER_PRODUCTS ON CUSTOMER_PRODUCTS.CUST_ID = CUSTOMER.CUST_ID
and WHERE PROD_DESCRIPTION LIKE '%SAW%';
其他人打我到A部分