如何在不使用 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 的更多信息。