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,我得到了正确的结果,谢谢你们: