这应该是一个非常简单的代码,但我无法弄清楚。基本上我想加入两个表。其中一个表具有用户名,另一个表具有所有订单 用户提交的。我想要一个包含所有用户的列表,由提交了大多数订单的用户订购。这可以使用JOIN吗?
SELECT COUNT(table1.Orders)
, table2.Name
FROM table1
LEFT JOIN table2 ON table1.IDName = table1.IDName
ORDER BY COUNT(table1.Orders)
这是我现在的代码。感谢您查看此内容,我期待听到您的回复。
答案 0 :(得分: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
答案 1 :(得分: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子句也是验证的关键点。