Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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_Sql - Fatal编程技术网

Mysql 如何将此sql查询更改为子查询

Mysql 如何将此sql查询更改为子查询,mysql,sql,Mysql,Sql,显示每个客户库存请求中请求的每个产品的列表。显示客户名称、产品编号和所需数量。按客户名称和产品编号排序 我试过这个: SELECT STOCK_REQUEST.requestNum, STOCK_REQUEST.clientNum, CLIENT.clientName, REQUEST_LIST.productNum, REQUEST_LIST.qtyRequested FROM STOCK_REQUEST, CLIENT, REQUEST_LIST WHERE CLIENT.clientN

显示每个客户库存请求中请求的每个产品的列表。显示客户名称、产品编号和所需数量。按客户名称和产品编号排序

我试过这个:

SELECT STOCK_REQUEST.requestNum, STOCK_REQUEST.clientNum, CLIENT.clientName, REQUEST_LIST.productNum, REQUEST_LIST.qtyRequested 
FROM STOCK_REQUEST, CLIENT, REQUEST_LIST 
WHERE CLIENT.clientNum = STOCK_REQUEST.clientNum 
AND REQUEST_LIST.requestNum = STOCK_REQUEST.requestNum 
ORDER BY CLIENT.clientName AND REQUEST_LIST.productNum
我得到这样的东西:

requestNum  clientNum   clientName  productNum  qtyRequested
2            2 [->]     David Liu       4            674
3            2 [->]     David Liu       5            66
1            1 [->]     Ian Peng        2            45
5            4 [->]     James Cameron   3            809
4            3 [->]     Mark Moris      1            164
但是要求说我们必须使用子查询,所以我尝试将其更改为:

SELECT CLIENT.clientName, REQUEST_LIST.productNum, REQUEST_LIST.qtyRequested 
FROM CLIENT, REQUEST_LIST 
WHERE CLIENT.clientNum IN (
    SELECT clientNum
    FROM STOCK_REQUEST)
    AND REQUEST_LIST.requestNum IN (
        SELECT requestNum
        FROM STOCK_REQUEST)
ORDER BY CLIENT.clientName AND REQUEST_LIST.productNum
但结果并不是我所期望的:

clientName  productNum  qtyRequested
David Liu       4           674
James Cameron   3           809
Mark Moris      5           66
David Liu       2           45
James Cameron   1           164
Mark Moris      4           674
James Cameron   5           66
Mark Moris      2           45
Ian Peng        3           809
James Cameron   4           674
Ian Peng        1           164
James Cameron   2           45
David Liu       3           809
Ian Peng        5           66
David Liu       1           164
Ian Peng        4           674
Mark Moris      3           809
David Liu       5           66
Ian Peng        2           45
Mark Moris      1           164

ORDER BY CLIENT.clientName和REQUEST_LIST.productNum不应该是ORDER BY CLIENT.clientName、REQUEST_LIST.productNum???@Octopus Paul-是的,两个查询的当前形式都将抛出语法错误。对于OP-对于第一个查询,您应该使用。在第二种情况下,您可以组合两个子查询,如WHERE clientNum、SELECT clientNum中的requestNum、STOCK中的requestNum\u REQUESTGreat,我得到了正确的结果,谢谢你们: