0

私をここまで連れてきてくれたみんなに感謝します!以下は機能しますが、現在の列名をすべて含む複数の行を返す方法がわかりません。ステートメントが現在書かれている方法では、1 行のみを返すことがサポートされていることを理解しています。ただし、いくつかのサブクエリの例を試しましたが、合計列は常に結果から除外されているようです。どんな助けでも素晴らしいでしょう、そしてありがとう。

    SELECT 
club.id,
club.name,
club.status,
users.firstname,
users.lastname,
users.rights,
 SUM( job.status > '0' ) AS total,
 SUM( job.status = '1' ) AS incomplete,
 SUM( job.status = '2' ) AS pending,
 SUM( job.status = '3' ) AS live,
 SUM( job.status = '4' ) AS closed 
FROM club 
LEFT JOIN surveys 
ON job.club_id = club.id 
LEFT JOIN users 
ON users.id = job.users_id 
WHERE job.status > 0
4

1 に答える 1

0

あなたが何をしようとしているのかは完全にはわかりませんが、ここに基本的な問題があります: GROUP BY ステートメントがありません。SUM のようなグループ化関数を使用すると、結果をグループ化することが mysql に伝えられます。GROUP BY を省略すると、すべてが 1 つの行にグループ化されます。ユーザーごとに1行にしたい場合(名前を選択しているため、そうすると思います)、次のように言う必要があります

GROUP BY users.id

クエリの最後に。

これで探している結果が得られない場合は、偽のデータを使用して探している結果の例を投稿してください。より詳細な回答を提供できます。

于 2013-10-08T01:10:11.317 に答える