我该如何在同一张桌子上进行双重连接

jrobertsz66

如何在同一张桌子上进行双重联接?

基本上,我想这样做:

1 - Sort all records in descending order by a order_date_last_revised column. 2 - Group those records by order_base_id column to eliminate duplicates. 3 - Match the id of those records and return all columns for them.

这是我的SQL,它不起作用:

SELECT * FROM sys_quote_master q1 LEFT JOIN sys_quote_master q2 ON q1.order_id = q2.order_id group by q2.order_base_id LEFT JOIN sys_quote_master q3 ON q2.order_id = q3.order_id WHERE order_base_id="010313-6063" order by q3.order_date_last_revised desc;

基本上,当我尝试执行它时得到了这个:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN sys_quote_master q2 ON q1.order_id = q2.order_id order by q3.order_dat' at line 4
波希米亚风格

您的group by位置是否存在:它必须出现在表和where子句之后(如果有):

SELECT *
FROM sys_quote_master q1 
LEFT JOIN sys_quote_master q2 ON q1.order_id = q2.order_id 
LEFT JOIN sys_quote_master q3 ON q2.order_id = q3.order_id
WHERE order_base_id="010313-6063"
group by q2.order_base_id 
order by q3.order_date_last_revised desc;

但是请注意,按当前分组方式将无效。您必须列出不是聚合列的所有列,才能按预期运行。

也许group by不是您想要的-考虑使用distinct模仿重复项:

select distinct *
from ...
-- and remove group by clause

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章