Mysql SQL:如何将Union all分隔为单独的列?

Mysql SQL:如何将Union all分隔为单独的列?,mysql,sql,Mysql,Sql,新用户。所以我正在做一个SQL数据库项目,主题是一个逃生室/餐厅,我有两个独立的桌子,一个叫做配料,另一个叫做资产。 下面是配料表的示例 | ingredients_id | ingredients_name | ingredients_cost | ingredient_stock | ingredient_availability | 1 | Beef Burger | 1.99 | 12 | 1 |

新用户。所以我正在做一个SQL数据库项目,主题是一个逃生室/餐厅,我有两个独立的桌子,一个叫做配料,另一个叫做资产。 下面是配料表的示例

| ingredients_id | ingredients_name | ingredients_cost | ingredient_stock | ingredient_availability
| 1              | Beef Burger      | 1.99             | 12               | 1 
| 2              | Cheese           | 1.99             | 0                | 0
| 3              | Bacon            | 1.99             | 43               | 1
这是资产表的一个例子

| asset_id | asset_name | asset_status | asset_availability
| 1        | escape_1   | Clean        | 1          
| 2        | escape_2   | Clean        | 1
| 3        | escape_3   | Clean        | 1
我想做的是创建一个组合了这两个元素的表,称为存储(已通过主键/外键拥有该表),我希望它显示为:

| Name        | Stock (Ingredients Only) | Availability
| escape_1    | NULL                     | TRUE
| escape_2    | NULL                     | TRUE
| escape_3    | NULL                     | TRUE
| Beef Burger | 12                       | TRUE
| Cheese      | 0                        | FALSE
| Bacon       | 43                       | TRUE
以下是迄今为止我的SQL代码:

SELECT asset_name AS "Name" FROM escaperoom_assets 
UNION ALL 
SELECT ingredients_name FROM ingredients

我可以把成分和资产的名称放在一个列表中,但我不能为其他的单独列出来。基本上,我需要它,以便在一列中显示所有资产和成分的列表,检查另一列的库存量(仅针对成分表),以及它们是否可用(标识为真/假或0或1)。

只需在每个子查询中添加所需的列:

SELECT asset_name AS Name, NULL as stock, asset_availabilty as availability
FROM escaperoom_assets 
UNION ALL 
SELECT ingredients_name, ingredient_stock, ingredient_availability
FROM ingredients;

我不确定为什么要将0/1转换为真/假。数字看起来不错,但如果需要,您可以使用条件逻辑将其转换为字符串。

好的,由于某些原因,表格格式完全混乱,我也不知道如何修复它。它可以工作!非常感谢你!我将做一些快速更改,以便将1和0替换为真/假,并用适当的名称重命名“股票”和“资产可用性”。无论如何,关于真/假的事情,我这样做看起来更专业一些,因为将信息显示为真或假而不是0/1更合理。@FoxyWoxy0w0。通常在API级别对这些值进行格式化,但您可以轻松地将第三个参数更改为
大小写
表达式:
(资产可用性时大小写为'TRUE'或'else'假结束)