MYSQL UNION和ORDER BY无法正常工作

前端之家收集整理的这篇文章主要介绍了MYSQL UNION和ORDER BY无法正常工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个mysql查询,如下所示

  1. (SELECT order_product.op_id,order_product.ocat_id,order_product.op_partnunber,order_product.op_name,order_product.op_upc,order_product.op_desc,order_stockavailable.osa_id,order_stockavailable.of_id,order_stockavailable.osa_stocka,order_category.ocat_name
  2. FROM
  3. order_product
  4. LEFT JOIN order_category
  5. ON order_product.ocat_id = order_category.ocat_id
  6. LEFT JOIN order_stockavailable
  7. ON order_product.op_id = order_stockavailable.op_id)
  8. UNION
  9. (SELECT order_product.op_id,order_stockavailable_attributes.id,order_stockavailable_attributes.of_id,order_stockavailable_attributes.opap_stock,order_category.ocat_name
  10. FROM order_product
  11. LEFT JOIN order_category
  12. ON order_product.ocat_id = order_category.ocat_id
  13. LEFT JOIN order_stockavailable
  14. ON order_product.op_id = order_stockavailable.op_id
  15. LEFT JOIN order_stockavailable_attributes
  16. ON order_product.op_id = order_stockavailable_attributes.op_id)
  17. ORDER BY order_product.op_name

查询是givng错误,T

来自其中一个SELECT的表’order_product’不能在全局ORDER子句中使用

我检查了MysqL手册,但没有得到任何线索,任何帮助都会非常棒.

最佳答案
  1. SELECT *
  2. FROM (
  3. SELECT order_product.op_id,order_category.ocat_name
  4. FROM
  5. order_product
  6. LEFT JOIN order_category
  7. ON order_product.ocat_id = order_category.ocat_id
  8. LEFT JOIN order_stockavailable
  9. ON order_product.op_id = order_stockavailable.op_id
  10. UNION
  11. SELECT order_product.op_id,order_category.ocat_name
  12. FROM order_product
  13. LEFT JOIN order_category
  14. ON order_product.ocat_id = order_category.ocat_id
  15. LEFT JOIN order_stockavailable
  16. ON order_product.op_id = order_stockavailable.op_id
  17. LEFT JOIN order_stockavailable_attributes
  18. ON order_product.op_id = order_stockavailable_attributes.op_id
  19. ) t
  20. ORDER BY op_name

顺便说一句:没有必要将UNION的各个SELECT放入括号中.

猜你在找的MySQL相关文章