Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL连接多表查询_Mysql_Database_Join - Fatal编程技术网

Mysql SQL连接多表查询

Mysql SQL连接多表查询,mysql,database,join,Mysql,Database,Join,嗨,我有以下两个问题和我的尝试。请给我一些建议 SQL数据库: CUSTOMER表:CUST\u ID,CUST\u NAME 产品表:产品标识,产品说明 CUSTOMER\u PRODUCTS表:CUST\u ID和PROD\u ID 此数据库用于跟踪客户拥有的产品,因此customer\u products为客户拥有的每个产品都有一个条目 我想: A: 编写一个SQL查询,该查询将返回不拥有任何产品的所有客户的列表 以下是我的尝试: SELECT CUSTOMER _PRODUCTS.CUS

嗨,我有以下两个问题和我的尝试。请给我一些建议

SQL数据库

CUSTOMER
表:
CUST\u ID
CUST\u NAME

产品
表:
产品标识
产品说明

CUSTOMER\u PRODUCTS
表:
CUST\u ID
PROD\u ID

此数据库用于跟踪客户拥有的产品,因此
customer\u products
为客户拥有的每个产品都有一个条目

我想:

A:

编写一个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;
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';
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;
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,您可能需要使用
左连接
,并且
为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,请单独提问,因为它是独立的。

对于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<P>他们中的任何一个都不应该做两个问题= 2个问题请考虑投票赞成的问题感谢人们对你的问题投资的时间和努力抱歉我的第一个答案在“%SAW %”的开头和结尾加上百分数的符号。