0

3 つのテーブルから結果を取得しようとすると、2 つのテーブルからのみ情報が取得され、3 つ目のテーブルは NULL 値のみが返されます。これは私のクエリです。phpmyAdmin で実行して、サーバーに配置する前にテストしています。

SELECT uk2.*,u.*,COALESCE(SUM(n.cost),'not found') as cost 
    FROM std13_k2_users AS uk2  
    JOIN std13_users AS u   
       ON uk2.userID=u.id   
    JOIN std13_k2_naklady AS n   
       ON uk2.userID=n.userID WHERE uk2.userID=986

SUM が NULL でない場合 (そのテーブルに合計するものがない場合)、すべてのテーブルから値を取得します。NULL の場合、std13_users テーブルからのみ値を取得します。std13_k2_users からの値は NULL です。

私の質問は次のとおりです。クエリをどのように修復すればよいですか? ありがとう。

4

1 に答える 1

0

joinsテーブルスキーマに対して正しく行われたと仮定して、これを試してください。

SELECT uk2.*,u.*, case when SUM(COALESCE(n.cost,0)) = 0 then 'not found' 
else SUM(COALESCE(n.cost,0)) end as cost 
    FROM std13_k2_users AS uk2  
    JOIN std13_users AS u   
       ON uk2.userID=u.id   
    JOIN std13_k2_naklady AS n   
       ON uk2.userID=n.userID WHERE uk2.userID=986
于 2013-01-27T16:33:08.507 に答える