如何在不使用 join sql 的情况下连接表
How to join tables without using join sql
您好,我正在尝试解决一个 sql 查询,我需要从多个表中获取信息并输出最终结果。
- 尚未提出库存请求的所有客户的列表。显示客户编号
就足够了。
不允许我使用内部联接或任何类型的联接来实现此目的。
到目前为止,这是我想出的。
SELECT c.clientNum
FROM client AS C, Stock_Request AS SR
WHERE C.clientNum not in SR.ClientNum
当前的尝试并没有达到我想要的结果。
这是表格中的信息。
(client)
INSERT INTO Client (clientName)
VALUES ('Mike');
INSERT INTO Client (clientName)
VALUES ('John');
INSERT INTO Client (clientName)
VALUES ('Sally');
INSERT INTO Client (clientName)
VALUES ('Margret');
INSERT INTO Client (clientName)
VALUES ('Max');
(stock request)
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2020-12-10',1);
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2020-05-04',2);
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2021-07-06',3);
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2021-07-08',4);
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2022-02-07',5);
如有任何帮助,我们将不胜感激。
你可以通过这段代码实现:
SELECT clientNum FROM `client`
WHERE clientNum
NOT IN (SELECT clientNum FROM stock_request GROUP BY clientNum);
你不需要在主 SELECT
上指明 stock_request table,你只需要使用 stock_request table 来获取通过使用 IN
,子查询中的所有 clientNum
,我认为你使用 IN
的方式不对。
查看有关 MySQL IN Operator 的更多信息。
您好,我正在尝试解决一个 sql 查询,我需要从多个表中获取信息并输出最终结果。
- 尚未提出库存请求的所有客户的列表。显示客户编号 就足够了。
不允许我使用内部联接或任何类型的联接来实现此目的。
到目前为止,这是我想出的。
SELECT c.clientNum
FROM client AS C, Stock_Request AS SR
WHERE C.clientNum not in SR.ClientNum
当前的尝试并没有达到我想要的结果。 这是表格中的信息。
(client)
INSERT INTO Client (clientName)
VALUES ('Mike');
INSERT INTO Client (clientName)
VALUES ('John');
INSERT INTO Client (clientName)
VALUES ('Sally');
INSERT INTO Client (clientName)
VALUES ('Margret');
INSERT INTO Client (clientName)
VALUES ('Max');
(stock request)
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2020-12-10',1);
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2020-05-04',2);
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2021-07-06',3);
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2021-07-08',4);
INSERT INTO Stock_Request (requestDate, clientNum)
VALUES ('2022-02-07',5);
如有任何帮助,我们将不胜感激。
你可以通过这段代码实现:
SELECT clientNum FROM `client`
WHERE clientNum
NOT IN (SELECT clientNum FROM stock_request GROUP BY clientNum);
你不需要在主 SELECT
上指明 stock_request table,你只需要使用 stock_request table 来获取通过使用 IN
,子查询中的所有 clientNum
,我认为你使用 IN
的方式不对。
查看有关 MySQL IN Operator 的更多信息。