我在Oracle数据库中有三个表,分别是newitems、itemdetails和ticketitems表。
以下是一些虚拟数据:
TICKETITEMS:
物品细节:
新项目:
最初,我只需要从itemdetails + ticketitems中获取数据,这很容易使用简单的连接语句。查询语句如下:
这样的东西。
现在引入了新的item表,这个表可能也有一些在ticketitems表中存在的项目。
所以我想要一个结果,像这样:
我面临的问题是,只有在itemdetails中找不到详细信息时,才应该检查NEWITEMS。任何其他解决方法也可以接受。
TICKETITEMS:
id ticketid itemid quantity
1 100 9999 2
2 100 9998 5
3 100 2222 3
物品细节:
id description col_sumthing extra_col
9999 Marlboro val_sumthing 123_op
9998 Cigar Black val_sumthing 456_pqwe
新项目:
id description col_sumthing
2222 100Pipes val_different
最初,我只需要从itemdetails + ticketitems中获取数据,这很容易使用简单的连接语句。查询语句如下:
SELECT "TI".*, "I"."ID" AS "ITEMID", "I"."DESCRIPTION", "I"."col_sumthing"
FROM "TICKETITEMS" "TI"
INNER JOIN "ITEMDETAILS" "I" ON TI.ITEMID = I.ID
WHERE (TI.TICKET = '100')
这样的东西。
现在引入了新的item表,这个表可能也有一些在ticketitems表中存在的项目。
所以我想要一个结果,像这样:
Final Result:
id description itemid quantity col_sumthing extra_col
1 Marlboro 9999 2 val_sumthing 123_op
2 Cigar Black 9998 5 val_sumthing 456_pqwe
3 100Pipes 2222 3 val_different
我面临的问题是,只有在itemdetails中找不到详细信息时,才应该检查NEWITEMS。任何其他解决方法也可以接受。