0

これは非常に単純なコードであるはずですが、私には理解できません。基本的に2つのテーブルを結合したいと思います。テーブルの1つにはユーザーの名前があり、もう1つのテーブルにはそのユーザーが送信したすべての注文があります。最も多くの注文を送信したユーザーによって注文された、すべてのユーザーのリストが必要です。これは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

私の頭のてっぺんからの私の最もよい推測は、あなたが同じテーブルとフィールドで両方のテーブルを結合しようとすることです、それは私が正しく理解しているなら意味がありません。1つのテーブルのフィールドのみを使用する場合、2つのテーブルの結果をどのように結合できますか?なぜ書くのか: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によって提案されたGROUPBY句を使用することも、検証するための重要なポイントです。

于 2012-11-23T17:58:45.570 に答える