如何在mysql中表示除法

如何在mysql中表示除法,mysql,Mysql,我需要在sql中表示关系代数除法。应该使用not exists运算符以某种方式完成此操作。例如,任务是找到汤姆买的所有苹果。显示姓名。这是分部。我提出了以下问题,但似乎不起作用 SELECT S.name FROM Apples S WHERE NOT EXISTS( SELECT E.pId from Products E where NOT EXISTS (SELECT L.pId

我需要在sql中表示关系代数除法。应该使用not exists运算符以某种方式完成此操作。例如,任务是找到汤姆买的所有苹果。显示姓名。这是分部。我提出了以下问题,但似乎不起作用

SELECT S.name
FROM Apples S 
WHERE NOT EXISTS( SELECT E.pId
                      from Products E
                     where NOT EXISTS (SELECT L.pId
                                        FROM Buyers L
                                        where E.pId = L.pId
                                        AND S.mId = E.mId
                                        AND L.name = 'Tom'));

还有其他想法吗?

要做到这一点,您可以尝试:

SELECT S.NAME
FROM Apples S
WHERE EXISTS (
    SELECT 1
    FROM Products E
    WHERE S.mId = E.mId
      AND NOT EXISTS (
        SELECT 1
        FROM Buyers L
        WHERE E.pId = L.pId
          AND L.NAME <> 'Tom'
        )
      AND EXISTS (
        SELECT 1
        FROM Buyers L
        WHERE E.pId = L.pId
          AND L.NAME = 'Tom'
        )
    );
这将有助于:
获取产品中存在的所有苹果,但不存在任何名为“TOM”的买家,但同时存在名为“TOM”的买家。希望这有帮助

你好,菲利佩。谢谢你的回复,但我需要使用“不仅不存在于任何地方”,因为我已经这样做了,但我的查询没有给我想要的结果。这就是为什么我想知道我是否有任何错误?。谢谢你,你能和表和样本数据共享一个,把它弄得乱七八糟吗?