2012-02-26 24 views
1

私は3つのテーブルを持っています.1つはクライアントに関する情報(名前、ユーザー名)、彼の車に実行されたサービス(サービスから取得したポイント)、サービスに関する別のテーブルです。 (名前、場所)を表します。mysqlクエリのヘルプが必要

私は、顧客が働いている会社、顧客自身、および得られたすべてのポイントの合計を取得するためにクエリを作成しようとしています。私はすでにいくつかのアプローチを試みましたが、すべて失敗しました。私はポイントがない場合でもクライアント情報を表示したい。

これは、私はすでに(例えばスクリプトを作成して)いくつかのより多くのテーブル構造のデータを提供し、

SELECT *FROM client c 
     INNER JOIN company b ON c.company_idcompany = b.idcompany 
     INNER JOIN (select sum(pointos) as pointos From services) d 

SELECT *FROM client c 
     INNER JOIN company b ON c.company_idcompany = b.idcompany 
     INNER JOIN service d ON c.idclient = d.client_idclient 

答えて

1

集計クエリでLEFT JOINする必要があります。 INNER JOINを実行すると、サービスにエントリがある行のみが戻されます。サービスのないクライアントは返されません。あなたはポイントの合計値を変換するために、IFNULLを使用することができ、ゼロではなくNULLを必要とする場合、この

SELECT *FROM client c 
    INNER JOIN company b ON c.company_idcompany = b.idcompany 
    LEFT JOIN (select client_idclient,sum(pointos) as pointos From services group by client_idclient) d on c.idclient=d.client_idclient 

を試してみてください。

+1

それは:) :)ありがとうalot.youは天才です。 –

+0

@LuisMiguelAlvesCamposさて、かなり天才ではないかもしれませんが、ありがとう、歓迎です! – liquorvicar

1

をしてくださいしようとしたものです。

私は、参加時にLEFT JOINを使用する必要があり、最初のクエリの2番目の結合ステートメントに「接続情報」を提供していないことが問題だと思います。