如何查询打印售罄的产品? [MYSQL]

How can I make a query to print sold out products? [MYSQL]

我是数据库新手。因此,我有两个 tables productsupplier,我需要进行查询以打印已售罄的产品以及一些供应商信息。

product table:

Product_ID Product_Name Quantity Supplier_ID
1 water 0 11
2 Milk 26 12
3 eggs 8 12
4 5L water 19 11
5 water gallon 0 11

supplier table:

Supplier_ID Supplier_Name Supplier_Phone
11 Pure life 55555555
22 Dairy 77777777
33 Nivea 66666666

我目前的工作:

SELECT product.Product_ID, 'product.Product_Name', product.Quantity,
'supplier.Supplier_Name', supplier.Supplier_Phone
FROM product, supplier
INNER JOIN supplier S ON supplier.Supplier_ID = product.Supplier_ID
WHERE (Quantity = 0)
GROUP BY 'product.Product_Name';

输出:

Error Code: 1054. Unknown column 'product.Supplier_ID' in 'on clause'

期望的输出:

Product_Name Quantity Supplier_Name Supplier_Phone
water 0 Pure life 55555555
water gallon 0 Pure life 55555555

您的查询存在以下问题:

  • SELECT 子句中,引号会让 MySQL 理解您需要一些字符串而不是引用 table 字段:用反引号代替引号(或者您可以完全跳过它们在你的情况下)
  • FROM子句中,引用了三个tableproduct, supplier INNER JOIN supplier S,而你需要的是在两个名字之间加上INNER JOIN tables productsupplier
  • 如果您不使用 aggregation function(如 MAXSUMGROUP_CONCAT 等,则不需要 GROUP BY 子句。 ..) 在 SELECT 语句中

下面是您的查询的片段:

SELECT 
    product.Product_ID, 
    `product.Product_Name`, 
    product.Quantity,
    `supplier.Supplier_Name`, 
    supplier.Supplier_Phone
FROM 
    product 
INNER JOIN 
    supplier 
ON 
    supplier.Supplier_ID = product.Supplier_ID
WHERE 
    product.Quantity = 0