在 MySQL 中创建虚拟 table
Creating a virtual table in MySQL
因此,我将我数据库中的多个 table 连接在一起,以获得虚拟 table 到 return 到我的 nodejs 程序。结果是这样的:
Project | OS | On
A Win False
A Mac True
A Mac True
B Win True
B Win True
C OS False
我的问题是;将上述 table 转换为虚拟 table 的最简单方法是什么。
Project | Win | Mac | True | False
A 1 3 2 1
B 2 0 2 0
C 0 1 0 1
这应该在 mysql 查询中完成,还是应该在初始 table 被 return 编辑到我的程序然后在那里编辑后完成?
您可以在 SQL 中执行此操作:
SELECT Project,
COUNT(CASE OS WHEN 'Win' THEN 1 END) AS Win,
COUNT(CASE OS WHEN 'Win' THEN 1 END) AS Mac,
COUNT(CASE `On` WHEN 'True' THEN 1 END) AS `True`,
COUNT(CASE `On` WHEN 'False' THEN 1 END) AS `False`
FROM NoOneEverNamesTheirTableInSqlQuestions
GROUP BY Project
因此,我将我数据库中的多个 table 连接在一起,以获得虚拟 table 到 return 到我的 nodejs 程序。结果是这样的:
Project | OS | On
A Win False
A Mac True
A Mac True
B Win True
B Win True
C OS False
我的问题是;将上述 table 转换为虚拟 table 的最简单方法是什么。
Project | Win | Mac | True | False
A 1 3 2 1
B 2 0 2 0
C 0 1 0 1
这应该在 mysql 查询中完成,还是应该在初始 table 被 return 编辑到我的程序然后在那里编辑后完成?
您可以在 SQL 中执行此操作:
SELECT Project,
COUNT(CASE OS WHEN 'Win' THEN 1 END) AS Win,
COUNT(CASE OS WHEN 'Win' THEN 1 END) AS Mac,
COUNT(CASE `On` WHEN 'True' THEN 1 END) AS `True`,
COUNT(CASE `On` WHEN 'False' THEN 1 END) AS `False`
FROM NoOneEverNamesTheirTableInSqlQuestions
GROUP BY Project