我正在编写一个查询,如果母公司存在,我需要选择母公司,如果母公司不存在而第二家公司存在,我需要选择它,如果两者都不存在,那么我需要选择公司(子公司)。
假设有一个带有 ID 和公司名称的 Company 表。
还有一个 Movie 表,其中包含以下列:
- ID(指电影ID#)
- 母公司列引用(公司表中的ID#)
- 第二家公司指的是(公司表中的 ID #)
- 公司(子公司名称)
我将如何创建执行此操作的查询?
请帮忙!!
我正在编写一个查询,如果母公司存在,我需要选择母公司,如果母公司不存在而第二家公司存在,我需要选择它,如果两者都不存在,那么我需要选择公司(子公司)。
假设有一个带有 ID 和公司名称的 Company 表。
还有一个 Movie 表,其中包含以下列:
我将如何创建执行此操作的查询?
请帮忙!!
您可以在查询中使用 case 语句来匹配您的逻辑。我认为这应该很接近:
select m.id,
case
-- has both, use child
when p.id is not null and s.id is not null then m.company
-- has parent not second, use parent
when p.id is not null and s.id is null then p.company
-- has second not parent, use second
when p.id is null and s.id is null then p.company
-- has neither, not sure what you want to do
when p.id is null and s.id is null then 'None'
end as company
from movies as m
left join companies as s
on m.second_company_id = s.id
left join companies as p
on m.parent_company_id = p.id