我不熟悉数据库.所以,我得到了两个表productsupplier,我需要做一个查询,打印出售出的产品以及一些供应商信息.

product表:

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表:

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理解您需要一些字符串而不是引用表字段:用反勾号代替引号(或者在您的情况下可以完全跳过它们)
  • FROM子句中,引用了三个表product, supplier INNER JOIN supplier S,而您需要的是在两个表productsupplier的名称之间加上INNER JOIN
  • 如果你没有使用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

Mysql相关问答推荐

MySQL查询获取图书的唯一读取页面数

mysql使用LIKE查找二进制字段有问题

MySQL没有使用S隐式附加到此二级索引的主键

MySQL::JSON列的添加使SELECT查询非性能(当需要临时表时)

如何将左联接的小计/总计行中的所有列作废

查找表中的唯一记录

如何在 MySQL 中使用从 SELECT IF 返回的布尔值

此更新查询是否有任何可能的重写选项?

使用数据表的直方图(SQL 查询)

终止空闲的mysql连接

将 MySQL 查询的输出转换为 utf8

MySql 以秒为单位的两个时间戳之间的差异?

有没有办法在 Zend Framework 1.5 中执行INSERT...ON DUPLICATE KEY UPDATE?

MySQL:低基数/ Select 性列=如何索引?

MySQL INSERT IF(自定义 if 语句)

如何在sequelize中定义多列的唯一索引

字符ي和ی以及波斯语的区别 - Mysql

MYSQL_ROOT_PASSWORD 已设置但在 docker 容器中获取用户'root'@'localhost'的访问被拒绝(使用密码:YES)

MySQL:唯一字段需要是索引吗?

SELECT INTO 和未声明的变量错误