sql 将表列转换为行

有时候觉得很流弊,很吊的样子,想想真的可笑,也可悲吧。今天去面试的时候看这题目都很简单,然后就刷刷的写了,行云流水。给了面试看是之后,他笑了一下,问了一句你的最后一题是这样做的?我还信誓旦旦的还跟他说这样是是最快的查询。然后他就给了题目让我再看一下题目,卧槽,不看不知道,一看吓一跳,我知道我看错了 ,然后我跟他说看错了 ,这样的话就两个虚拟表和一个左连接就可以了。然后他就没有问什么问题了 ,就问了一些不痛不养的问题。然后就没有然后了 。。。。。

将这样的表用sql写成这样的表

分析一下其中的结构是分别有两张虚拟表连接而成。这两张表分别为

sql 语句分别为:

SELECT name ,curriculum,fraction from t_achievement where curriculum='语文'

SELECT name ,curriculum,fraction from t_achievement where curriculum='英文'

这两张表通过 left jion  

SELECT t.name,t.chinese,tt.english from (SELECT name as `name` , fraction as chinese from t_achievement where curriculum='语文') t LEFT JOIN
(SELECT name as `name`,fraction as english from t_achievement where curriculum='英文')tt on tt.name=t.name

 

结果如下

 

总结: 细节决定着成败

 

posted on 2017-09-19 14:46  herohacker  阅读(3891)  评论(0)    收藏  举报

导航