我正在MYSQL中尝试,请建议预期结果
先谢谢你
表一
| 年份|汽车|
| - ------| - ------|
| 二○ ○ ○年|宝马|
| 二○ ○ ○年|铃木马鲁蒂|
| 二○ ○ ○年|丰田|
| 二○ ○一年|大众汽车|
| 二○ ○一年|戴姆勒|
| 二○ ○一年|雪佛兰|
输出
| 年份|汽车|
| - ------| - ------|
| 二○ ○ ○年|宝马、马鲁蒂铃木、丰田|
| 二○ ○一年|大众、戴姆勒、雪佛兰|
预期输出低于
| 年份|车型|丰田|福特|
| - ------| - ------| - ------| - ------|
| 二○ ○ ○年|宝马、马鲁蒂铃木、丰田|是|否|
| 二○ ○一年|大众、戴姆勒、雪佛兰|否|否|
我使用了以下查询
SELECT
GROUP_CONCAT (distinct table1.year, table1.Cars ASC Separator ',') as Car Model
FROM TABLE1
3条答案
按热度按时间r1zk6ea11#
数据类型
使用
IF
和GROUP_CONCAT
dbfiddle
fdx2calv2#
这是一种方法。
您在这里看到的是一个正在运行的子查询。
首先,
FROM ( .... ) tmp
中的部分创建一个包含两列year
和car_model
的临时表,其中car_model
列是一个具有唯一模型的连接字符串。接下来,我们查询那个临时表,将它用作新查询的源,检查
TOYOTA
和Ford
是否出现在它的任何行中。但是,如果您需要检查每个车型,并且每个车型都有一个单独的
IF
列,那么最好使用PHP或其他任何与MySQL一起工作的服务器端语言动态创建查询。lc8prwob3#
只需将 group_concat 聚合与标准条件聚合相结合: