0

这应该是一个非常简单的代码,但我想不通。基本上我想加入两个表。其中一张表包含用户的姓名,另一张表包含该用户提交的所有订单。我想要一个所有用户的列表,由提交最多订单的用户订购。这可以使用 JOIN 吗?

SELECT COUNT(table1.Orders)
        , table2.Name 
    FROM table1 
        LEFT JOIN table2 ON table1.IDName = table1.IDName 
ORDER BY COUNT(table1.Orders)

这是我现在拥有的代码。感谢您查看此内容,我期待听到您的回复。

4

2 回答 2

2

您可能需要GROUP BY按降序使用和排序。你JOIN错了,我table1.IDName换成table2.IDName

SELECT COUNT(table1.Orders) AS nb, table2.Name
FROM table1
LEFT JOIN table2 ON table1.IDName = table2.IDName
GROUP BY table.Name
ORDER BY nb DESC
于 2012-11-23T17:56:05.893 回答
1

我的最佳猜测是您尝试将两个表连接到同一个表和字段上,如果我理解正确的话,这是没有意义的。如果只使用单个表中的字段,如何连接两个表的结果?为什么写:table1.IDName = table1.IDName?我相信你会写table2.IDName = table1.IDName的。

代替:

SELECT COUNT(table1.Orders)
        , table2.Name 
    FROM table1 
        LEFT JOIN table2 ON tabel1.IDName = table1.IDName 
    ORDER BY COUNT(table1.Orders)

你应该写:

SELECT COUNT(table1.Orders)
        , table2.Name 
    FROM table1 
        LEFT JOIN table2 ON tabel2.IDName = table1.IDName 
    ORDER BY COUNT(table1.Orders)

使用Jocelyn建议的 GROUP BY 子句也是验证的关键点。

于 2012-11-23T17:58:45.570 回答