繁体   English   中英

SQL在多个JOIN上留下联接错误

[英]SQL left Join Error on multiple JOIN

Here is my query 

SELECT item.item, item.id as itemID,item.item_sku,O.serial_no,transaction.id, transaction.t_price, transaction.t_unit, transaction.total_amount, transaction.transaction_type, transaction.comment, transaction.created from transaction

LEFT JOIN item ON transaction.item_id = item.id
LEFT JOIN order O  ON transaction.order_no=o.order_no
WHERE transaction_type='buy' ORDER BY transaction.created DESC

但它显示此错误..为什么?

1064-您的SQL语法有误; 请检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在“ order o ON transaction.order_no = o.order_no WHERE transaction_type ='buy'ORDER'行附近使用

ORDER保留字 ,因此您需要对其进行转义。 检查此Stackoverflow答案,以了解如何使用反引号转义查询中的保留字。

请检查以下一项:

SELECT item.item, item.id as itemID,item.item_sku,O.serial_no,transaction.id, transaction.t_price, transaction.t_unit, transaction.total_amount, transaction.transaction_type, transaction.comment, transaction.created 
FROM transaction

LEFT JOIN item ON transaction.item_id = item.id
LEFT JOIN `order` O  ON transaction.order_no = o.order_no
WHERE transaction_type='buy' 
ORDER BY transaction.created DESC

使用ALIAS时,您可以编写较短的表格。

SELECT
    i.item
    , i.id as itemID
    , i.item_sku
    , o.serial_no
    , t.id
    , t.t_price
    , t.t_unit
    , t.total_amount
    , t.transaction_type
    , t.comment
    , t.created
FROM transaction
LEFT JOIN item i ON t.item_id = i.id
LEFT JOIN `order` o ON t.order_no=o.order_no
WHERE transaction_type='buy'
ORDER BY t.created DESC;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM