Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL从同一列查询多个数据_Mysql_Sql_Select_Group By_Pivot - Fatal编程技术网

MySQL从同一列查询多个数据

MySQL从同一列查询多个数据,mysql,sql,select,group-by,pivot,Mysql,Sql,Select,Group By,Pivot,我有这两个表,我想输出以下结果 Table A ----------------------------- ID | Name 1 | John 2 | Doe ----------------------------- Table B ----------------------------- ID | FK | Type | Point 1 | 1 | 1 | 10 2 | 1 | 2 | 15 3 | 1 | 3 | 15 4 | 2 | 1

我有这两个表,我想输出以下结果

Table A
-----------------------------
ID | Name
1  | John
2  | Doe
-----------------------------

Table B
-----------------------------
ID | FK | Type | Point
1  | 1  | 1    | 10
2  | 1  | 2    | 15
3  | 1  | 3    | 15
4  | 2  | 1    | 8
5  | 2  | 2    | 6
6  | 2  | 3    | 5
-----------------------------


Expected Output
-----------------------------
ID | Name | Type1 | Type2 | Type3 | Total
1  | John | 10    | 15    | 15    | 40
2  | Doe  | 8     | 6     | 5     | 19
-----------------------------
另一个问题是我是否应该索引表B、FK和Type列以获得更好的性能

感谢大家在高级课程中的帮助:)

尝试以下方法:

SELECT A.ID, A.Name, 
       MAX(CASE WHEN B.Type = 1 THEN B.Point ELSE 0 END) Type1, 
       MAX(CASE WHEN B.Type = 2 THEN B.Point ELSE 0 END) Type2, 
       MAX(CASE WHEN B.Type = 3 THEN B.Point ELSE 0 END) Type3, 
       SUM(B.Point) Total
FROM tableA a 
LEFT JOIN tableB b ON A.ID = B.FK 
GROUP BY A.ID

当然,社区可以提供帮助,请与我们分享您创建的查询。搜索
[mysql][pivot]
您将发现数百个类似问题的答案。谢谢Barmar!最后,我找到了正确的关键字进行搜索。谢谢Shah!你的sql语句省去了我的头疼。我现在知道你的想法了。@WaiMun非常欢迎你。。。您还可以使用此链接检查如何使用stackoverflow