MySQL无法找到分配了别名的表

时间:2017-08-10 10:38:03

标签: mysql alias

我有一个查询...

select distinct(sod.sod_no), so.`so-no`, p.product_name, pod.prodstatus, po.`po-no`
                            from so_details sod
                            left join `sales-order` so on sod.so_number = so.`so-number`
                            left join products p on sod.product_id = p.product_id
                            left join po_details pod on sod.so_number = pod.so_number
                            left join `purchase-order` po on pod.po_number = po.`po-number` 
                            where so.status = 'In Progress'

但它错了:

#1146 - Table 'po.po-no' doesn't exist

奇怪的是它可以毫无问题地读取sales-order表。可能是什么问题?

2 个答案:

答案 0 :(得分:2)

这条线是什么?

left join `sales-order` so on sod.so_number = so.`so-number`, po.`po-no`

我认为你可以删除, po.po-no部分。它看起来像是一个复制粘贴错误。

答案 1 :(得分:0)

问题在于这一行:

left join `sales-order` so on sod.so_number = so.`so-number`, po.`po-no`

我不知道它为什么po.po-no。此时,您的查询仍然不知道别名po

我建议使用统一样式来命名表和列。在SQL中,它通常是snake_case,但似乎您在同一个数据库中使用_-