1

私が使用している理由IFNULLは、null フィールドを 0 に変更することです。しかし、常に次のエラーが発生します。

エラー コード: 1054。「on 句」の不明な列「inc.month_id」

これが私のMysqlクエリです:

    SELECT * FROM tbl_month
left joins 
(
   select ifnull(tbl_income.rentals,0) as rentals, ifnull(tbl_income.electric,0) as electric, ifnull(tbl_income.month_id,0) as month_id
   from tbl_income 
   where tbl_income.igp_id = 1
) as inc on tbl_month.month_id = inc.month_id;

編集:すべての列を手動で追加しましたが、null フィールドは 0 に置き換えられません。

出力: ここに画像の説明を入力

4

2 に答える 2

0

これはleft join; を使用するか、サブクエリではなくメインの選択にinner join入れます。ifnull

SELECT 
  ifnull(inc.rentals,0) as rentals, 
  ifnull(inc.electric,0) as electric, 
  ifnull(inc.month_id,0) as month_id,
  ...
FROM tbl_month t1
left join tbl_income as inc on t1.month_id = inc.month_id;
于 2013-09-30T09:27:39.603 に答える
-1

問題は、一時テーブル「inc」の列に名前を付けていないことです。

あなたはこれを持っています

ifnull('*',0)

しかし、持っている必要があります

ifnull('*',0) as month_id.

ノート:

それifnull('*',0)は常に'*'.

列のみを検証する場合は、次month_idのようにする必要があります

ifnull(month_id,0) as month_id

于 2013-09-30T09:10:44.757 に答える