Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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_Sql - Fatal编程技术网

Mysql 将第一个查询的结果用作第二个查询的条件

Mysql 将第一个查询的结果用作第二个查询的条件,mysql,sql,Mysql,Sql,我有以下SQL表,您也可以在SQL FIDLE中找到: 我目前使用以下查询: SELECT Supplier, Product, Quantity FROM Products WHERE Product = "Product B"; 但是,现在我想使用上面查询的部分结果作为第二个查询的WHERE条件。基本上,我希望产品B的所有供应商都用于产品A的WHERE标准。类似这样: SELECT Supplier, Product, Quantity FROM Products WHERE Produc

我有以下SQL表,您也可以在SQL FIDLE中找到:

我目前使用以下查询:

SELECT Supplier, Product, Quantity
FROM Products
WHERE Product = "Product B";
但是,现在我想使用上面查询的部分结果作为第二个查询的WHERE条件。基本上,我希望产品B的所有供应商都用于产品A的WHERE标准。类似这样:

SELECT Supplier, Product, Quantity
FROM Products
WHERE Product = "Product A"
AND Supplier EXISTS IN
   (SELECT Supplier
    FROM Products
    WHERE Product = "Product B") table_01;
Supplier             Product          Quantity
Supplier_05          Product A         300
Supplier_02          Product B         850
Supplier_05          Product B         900
Supplier_06          Product B         270
Supplier_10          Product B         630
最终,预期结果应如下所示:

SELECT Supplier, Product, Quantity
FROM Products
WHERE Product = "Product A"
AND Supplier EXISTS IN
   (SELECT Supplier
    FROM Products
    WHERE Product = "Product B") table_01;
Supplier             Product          Quantity
Supplier_05          Product A         300
Supplier_02          Product B         850
Supplier_05          Product B         900
Supplier_06          Product B         270
Supplier_10          Product B         630
我需要在代码中更改什么才能使其正常工作?

您就快到了:

选择供应商、产品、数量 来自产品 供应商在哪里 选择供应商 来自产品 其中产品=产品B 按1,2分组 以2,1的顺序排列;
在这里你可以使用下面的脚本。内部联接可用于筛选查询

SELECT A.SUPPLIER, A.PRODUCT, A.QUANTITY
  FROM (SELECT A.SUPPLIER, A.PRODUCT, A.QUANTITY
         FROM PRODUCTS A) A
   INNER JOIN (SELECT DISTINCT SUPPLIER
                 FROM PRODUCTS
                WHERE PRODUCT = "Product B") B
      ON B.SUPPLIER = A.SUPPLIER

. . 您的查询格式不正确。“选择”中有未聚合的列,这些列不在“分组依据”中。因此,这个问题没有意义,因为查询的结果是任意的。我们对“工作正常”有非常不同的定义!!:-@戈登·林诺夫:我删除了这个群。谢谢。准确地说。我所需要的。但是你想要的结果是不同的@MichiI编辑了答案。现在它们是理想的结果。