Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 如何在一个组中查找产品,而不是在另一个组中查找产品_Mysql_Array Difference - Fatal编程技术网

Mysql 如何在一个组中查找产品,而不是在另一个组中查找产品

Mysql 如何在一个组中查找产品,而不是在另一个组中查找产品,mysql,array-difference,Mysql,Array Difference,我当前有以下SQL查询: SELECT product.name "Product", section.floor "Floor" FROM products JOIN sales ON products.productID = sales.productID JOIN sections ON sales.sectionID = sections.sectionID WHERE sections.floor = 1 // BUT N

我当前有以下SQL查询:

SELECT
    product.name "Product",
    section.floor "Floor"
FROM
    products
JOIN
    sales
ON
    products.productID = sales.productID
JOIN
    sections
ON
    sales.sectionID = sections.sectionID
WHERE
    sections.floor = 1 // BUT NOT ON FLOOR = 2
我的想法是看看哪些产品在一楼销售,而不是在二楼。我设法在第一个网站上销售所有的产品,但是我怎样才能摆脱在第二个网站上也能找到的产品呢


我的想法是让所有的产品都在两层楼销售,然后删除已销售的产品列表,并将其从一层楼的所有产品列表中删除,但我不知道怎么做。

首先,您不需要您的分组声明,所以您可以摆脱它

如果要避免使用第二层对象,则应首先选择第一层中的所有产品,然后添加另一个子查询,以过滤出也在第二层销售的产品

看起来是这样的:

SELECT p.name, s.floor
FROM products p
JOIN sales sa ON sa.productid = p.productid
JOIN sections s ON s.sectionid = sa.sectionid
WHERE s.floor = 1 
   AND p.productid NOT IN(
      SELECT p.productid
      FROM products p
      JOIN sales sa ON sa.productid = p.productid
      JOIN sections s ON s.sectionid = sa.sectionid
      WHERE s.floor = 2)

考虑上述内容的另一种方式是:为在一楼销售的所有产品提供每个产品名称和楼层,其中productid不是在二楼销售的productid之一。

除非您确定自己知道自己在做什么,否则如果您发现自己使用的GROUP BY子句没有聚合功能,很可能你做错了什么!哦,抱歉,删除了它,不知道我为什么在这里键入了该组,我知道聚合功能,真的很抱歉。重新阅读您的问题,我不完全确定您是否希望在1楼或2楼销售产品,但概念保持不变。是的,您答对了,我正在寻找在1楼销售的产品,而不是在2楼销售的产品。我在想,我可以简单地用一个两个连接将其拉出,而不进行另一个子查询:D,但是,似乎我不能。不,我不这么认为。当你像我说的“在一个位置获取项目,但不要在另一个位置获取项目”那样思考它的时候,我的脑海中就会尖叫出子查询。