SQL Select 在同一行中查找多个外键的文本 table

SQL Select Text for multiple foreign keys to lookup table in same row

我有一个类似于以下内容的 table,它具有项目更改的历史记录并保存状态的旧值和新值。状态编号是保存文本的查找 table 的外键。 IE。 1 = 'In Inventory', 2= 'Destroyed' 等..

我希望能够将其呈现为人类可读的结果,并将整数键替换为查找中的文本 table,但我不太确定该怎么做,因为我不能加入外键。

演示数据库

+---------+-------------+-------------+------------+
| ITEM_ID | OLD_STATUS  | NEW_STATUS  | TIMESTAMP  |
+---------+-------------+-------------+------------+
|       1 |          1  | 2           | 2012-03-25 |
|       1 |          2  | 3           | 2013-12-25 |
|       1 |          3  | 4           | 2015-03-25 |
+---------+-------------+-------------+------------+

您可以多次 join status table - 像这样:

select i.item_id, 
    i.old_status, 
    i.new_status,
    i.timestamp,
    s1.statustext,
    s2.statustext
from items i
    join status s1 on i.old_status = s1.statusid
    join status s2 on i.new_status = s2.statusid