0

私は、mysql でテーブル リンク プロセスが必要な車の予算プロジェクトを実行しています。表示が制限されているため、いくつかのテーブルから必要なすべての情報を収集して要約テーブルに表示する必要があります。

一部の情報が空白になっている可能性があり、空のセルの代わりに「-」を表示する必要があります。

ここに私のテーブルがあります:

car_db

c_id    c_brand    c_ver    c_buy_date
--------------------------------------
1       toyota     camry    2013-04-20
2       nissan     teana    2013-04-15
3       toyota     soluna   2013-04-10
4       honda      accord   2013-04-10

car_bal

cb_id    cb_cid    cb_cost    c_repair
--------------------------------------
1        4         150000     20000
2        3         100000     15500

*while cb_cid=car_db.c_id

car_db テーブルが表示されたら、次のことを期待しました。

Car ID    Brand/Model      Bought On    Cost     Repair    Total Cost
1         Toyota Camry     2013-04-20   -        -         -
2         Nissan Teana     2013-04-15   -        -         -
3         Toyota Soluna    2013-04-10   100000   15500     115500
4         Honda Accord     2013-04-10   150000   20000     170000

だから私は書いた:

select 
concat(car_db.c_brand,'-',car_db.c_ver) as brand,
car_db.c_buy_date as buy_date,
car_bal.cb_cost as cost1,
car_bal.cb_repair as repair,
(sum(car_bal.cb_cost) + sum(car_bal.cb_repart)) as sum
from car_db
inner join car_bal on car_db.cb_id=car_bal.cb_cid
order by car_db.c_id desc

これらのコードをいくつかのエラーでテストしました。だから私はいくつかの提案が必要です:

  1. 表の空のセルの代わりに「-」を表示する方法。
  2. PHP の助けは必要ありません。MySQL で完了するだけです。
  3. MySQL コードを緩和または短縮する方法はありますか?
4

2 に答える 2

1
ifnull(sum(car_bal.cb_cost),'-')
于 2013-04-28T06:11:57.907 に答える
0

どうですか:

ALTER TABLE tablename 
-> MODIFY colname NOT NULL DEFAULT '-';
于 2013-04-28T06:16:45.993 に答える