使用带 ifnull 函数的联合语句 MySQL

Using joint statement with ifnull function MySQL

我只想在结果中用项目 table 中的名称替换引用 ID,正如我在上次 table

中显示的那样

第一 table 和 Parent table

id item amount tax status
1 4 20 2 Y
2 5 15 1 N
3 6 5 0 N

第二 table 和 child table

id item p_id amount tax
1 1 1 10 1
2 2 2 10 1
3 3 1 15 1

第三table

id item
1 mobile
2 heater
3 mouse
4 electronic
5 software
6 papers

我从这段代码中得到了什么

SELECT IFNULL(child.item, parent.item) AS item, 
       IFNULL(child.amount, parent.amount) AS amount,
       IFNULL(child.tax, parent.tax) AS tax
FROM parent
LEFT JOIN child ON parent.id = child.p_id
item amount tax
1 10 1
2 10 1
3 15 1
5 15 1
6 5 0

我要的是

item amount tax
mobile 10 1
heater 10 1
mouse 15 1
software 15 1
papers 5 0

请帮我实现这个

只需使用您已在查询中显示的商品 ID 加入商品 table:

SELECT
  i.item, 
  COALESCE(c.amount, p.amount) AS amount,
  COALESCE(c.tax, p.tax) AS tax
FROM parent p
LEFT JOIN child c ON c.p_id = p.id
JOIN item i ON i.id = COALESCE(c.item, p.item)
ORDER BY i.item;

(我使用 COALESCE 而不是 IFNULL,因为这是标准的 SQL。但如果您更喜欢,可以坚持使用 IFNULL。)