2016-01-23 130 views
-1

嗨,我有以下2个问题和我的企图。请给我一些建议。SQL加入多个表查询

SQL数据库

CUSTOMER表:CUST_IDCUST_NAME ...

PRODUCT表:PROD_IDPROD_DESCRIPTION,...

CUSTOMER_PRODUCTS表:CUST_IDPROD_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'; 

你们有什么觉得?我是否朝着正确的方向前进?

+2

他们都应该工作 – mmuzahid

+0

2个问题= 2点的问题请 – Dave

+0

功课奉送? – Andrew

回答

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部分

+0

对不起,我的第一个答案是在词'%saw%'的开头和结尾添加了百分号。 – hoopsta33

0

对于一个,您可能需要使用LEFT JOINIS 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; 

,皮斯问另外一个问题,因为它是独立的。