Mysql 执行左联接时出现未知列错误

Mysql 执行左联接时出现未知列错误,mysql,sql,left-join,Mysql,Sql,Left Join,我正在尝试使用左连接,但出现了一个错误 on子句中的未知列“sales\u order\u grid.entity\u id” 但是,我不知道如何重新编写查询,列sales\u order\u网格确实包含一个名为entity\u id的列?我试图运行一个显示结果的查询,即使sales\u order\u tax表没有匹配的行,我也希望其他表中的其余数据显示出来 SELECT sales_order_grid.entity_id, sales_order_grid.created_at, sale

我正在尝试使用左连接,但出现了一个错误 on子句中的未知列“sales\u order\u grid.entity\u id”

但是,我不知道如何重新编写查询,列sales\u order\u网格确实包含一个名为entity\u id的列?我试图运行一个显示结果的查询,即使sales\u order\u tax表没有匹配的行,我也希望其他表中的其余数据显示出来

SELECT sales_order_grid.entity_id, sales_order_grid.created_at, sales_order_grid.increment_id AS OrderID, sales_order_grid.status, sales_order_grid.payment_method AS payment_method, sales_order_grid.base_grand_total AS pmt, sales_order_grid.base_grand_total AS charged, t.code AS tax_code, t.title AS taxrate, t.amount AS taxamount, 
      sales_order_grid.shipping_and_handling AS shipping_invoice, sales_order_grid.grand_total AS total_invoice, customer_address_entity.firstname, customer_address_entity.lastname, 
      customer_address_entity.city, customer_address_entity.region, customer_address_entity.postcode 
FROM sales_order_grid, customer_address_entity LEFT OUTER JOIN sales_order_tax AS t on sales_order_grid.entity_id = t.order_id
WHERE sales_order_grid.created_at >= '2018-02-01 00:00:00' 
  AND sales_order_grid.created_at <= '2018-02-05 23:59:59' 
  AND sales_order_grid.status IN('Paid','complete','closed','Processing','on hold') 
  AND sales_order_grid.customer_id = customer_address_entity.parent_id    
GROUP BY sales_order_grid.entity_id
选择销售订单网格、实体网格、销售订单网格、创建网格、销售订单网格、增量网格作为订单id、销售订单网格、状态、销售订单网格、付款网格、付款网格、销售订单网格、基金网格、总金额作为付款网格、销售订单网格、总金额作为收费网格、t代码作为税码、t标题作为税率、t金额作为税额、,
销售\订单\网格.发货\和\处理作为发货\发票,销售\订单\网格.总计\作为总发票,客户\地址\实体.firstname,客户\地址\实体.lastname,
客户地址实体。城市,客户地址实体。地区,客户地址实体。邮政编码
从销售\订单\表格中,客户\地址\实体左侧外部连接销售\订单\税务作为销售\订单\表格中的t。实体\ id=t。订单\ id
其中销售订单创建时间>='2018-02-01 00:00:00'

和sales_order_grid.created_at在加入表格时,您混合了两种不同的方式

您的查询应如下所示:

SELECT sales_order_grid.entity_id, sales_order_grid.created_at, sales_order_grid.increment_id AS OrderID, sales_order_grid.status, sales_order_grid.payment_method AS payment_method, sales_order_grid.base_grand_total AS pmt, sales_order_grid.base_grand_total AS charged, t.code AS tax_code, t.title AS taxrate, t.amount AS taxamount, 
  sales_order_grid.shipping_and_handling AS shipping_invoice, sales_order_grid.grand_total AS total_invoice, customer_address_entity.firstname, customer_address_entity.lastname, 
  customer_address_entity.city, customer_address_entity.region, customer_address_entity.postcode 
  FROM sales_order_grid
  JOIN customer_address_entity on sales_order_grid.customer_id = customer_address_entity.parent_id
  LEFT OUTER JOIN sales_order_tax AS t on sales_order_grid.entity_id = t.order_id
  WHERE sales_order_grid.created_at >= '2018-02-01 00:00:00' AND sales_order_grid.created_at <= '2018-02-05 23:59:59'  
  AND sales_order_grid.status IN('Paid','complete','closed','Processing','on hold')  GROUP BY sales_order_grid.entity_id
选择销售订单网格、实体网格、销售订单网格、创建网格、销售订单网格、增量网格作为订单id、销售订单网格、状态、销售订单网格、付款网格、付款网格、销售订单网格、基金网格、总金额作为付款网格、销售订单网格、总金额作为收费网格、t代码作为税码、t标题作为税率、t金额作为税额、,
销售\订单\网格.发货\和\处理作为发货\发票,销售\订单\网格.总计\作为总发票,客户\地址\实体.firstname,客户\地址\实体.lastname,
客户地址实体。城市,客户地址实体。地区,客户地址实体。邮政编码
来自销售订单网格
将客户\地址\实体加入销售\订单\网格。客户\ id=客户\地址\实体。父\ id
左外部联接销售\订单\税务作为销售\订单\网格上的t。实体\ id=t。订单\ id

当sales_order_grid.created_位于>='2018-02-01 00:00:00'和sales_order_grid.created_位于@Jayreis&Isace时,问题在于逗号的优先级低于关键字联接。“混合两种不同的加入方式”不是问题所在。问题在于错误地混淆了两种不同的连接方式。