我有一个表,其中包含场景信息以及它是否处于活动状态,我像这样查询该场景
SELECT
scenario.*,
scenario_detail.name,
scenario_detail.is_activated,
scenario_detail.is_current,
scenario_detail.input_values,
scenario_detail.scenario_id,
scenario_detail.user_id,
scenario_detail.plan_id,
scenario_detail.order_index
FROM scenario
INNER join scenario_detail
ON scenario_detail.scenario_id = scenario.id
WHERE scenario_detail.state = 'ACTIVE'
并且它可以很好地返回场景。现在我想返回一个数组,它将包含两个项目,一个是所有激活的场景的列表,另一个是非活动的场景的列表。
我知道我可以在前端对这些场景进行切片和排序,但我对在后端做这件事相当感兴趣。
我怎么能做到呢?
发布于 2019-08-30 05:36:17
如果所有字段都相同,则可以使用union。
SELECT
scenario.*,
scenario_detail.name,
scenario_detail.is_activated,
scenario_detail.is_current,
scenario_detail.input_values,
scenario_detail.scenario_id,
scenario_detail.user_id,
scenario_detail.plan_id,
scenario_detail.order_index
FROM scenario
INNER join scenario_detail
ON scenario_detail.scenario_id = scenario.id
WHERE scenario_detail.state = 'ACTIVE'
UNION
SELECT
scenario.*,
scenario_detail.name,
scenario_detail.is_activated,
scenario_detail.is_current,
scenario_detail.input_values,
scenario_detail.scenario_id,
scenario_detail.user_id,
scenario_detail.plan_id,
scenario_detail.order_index
FROM scenario
INNER join scenario_detail
ON scenario_detail.scenario_id = scenario.id
WHERE scenario_detail.state = 'INACTIVE'
https://stackoverflow.com/questions/57720928
复制