当查询结果表之间没有任何结果时,如何显示“ - ”

时间:2013-04-28 06:08:19

标签: mysql inner-join

我正在运行汽车预算项目,需要在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

*而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代码?

2 个答案:

答案 0 :(得分:1)

ifnull(sum(car_bal.cb_cost),'-')

答案 1 :(得分:0)

怎么样:

ALTER TABLE tablename 
-> MODIFY colname NOT NULL DEFAULT '-';