mysql - 在 MySQL 中创建虚拟表

标签 mysql sql join alter

因此,我从我的数据库中的多个表中将它们连接在一起以获得一个虚拟表以返回到我的 nodejs 程序。结果是这样的:

Project | OS   |   On
A         Win     False       
A         Mac      True
A         Mac      True
B         Win      True
B         Win      True
C         OS       False

我的问题是;将上述表转换为这样的虚拟表的最简单方法是什么。

Project | Win | Mac | True | False
   A        1    3      2      1
   B        2    0      2      0
   C        0    1      0      1

这应该在 mysql 查询中完成,还是应该在初始表返回到我的程序然后在那里编辑后完成?

最佳答案

您可以在 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

关于mysql - 在 MySQL 中创建虚拟表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183460/

相关文章:

mysql - Linux Mandriva : Tomcat can not get MySQL database connection, 为什么?

mysql - SQL连接/组合两个相似但不完整的表成一个更完整的表

php - 在函数内调用 PDO

mysql - 对多个表进行求和和排序

php - cakephp 中的模型和行为使用

在嵌套查询上使用内部连接更新 MySQL

python - Pandas 合并 101

mysql - 在两个不同的服务器上分析 mysql

sql - PostgreSQL 获取一列为最小值的行

MATLAB 组合不同维度的矩阵,填充相应索引的值