Mysql 将第一个查询的结果用作第二个查询的条件
我有以下SQL表,您也可以在SQL FIDLE中找到: 我目前使用以下查询: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
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编辑了答案。现在它们是理想的结果。