SQL group_concat 删除左连接
SQL group_concat remove left join
我有这两张表
FunctionName | value
-------------+---------
intensity | 0
status | NULL
和
FunctionName | StatusName
-------------+------------
status | ON
status | Off
我正在使用这个查询:
SELECT
Functions.FunctionName, Functions.value,
GROUP_CONCAT(FunctionsWithStatus.StatusName)
FROM
Functions
LEFT JOIN
FunctionsWithStatus ON Functions.FunctionName = FunctionsWithStatus.Functionsname
结果是:
Name | value | group_concat
status | 0 | off,on
我怎样才能同时检索 "intensity" 的值并得到如下结果:
Name | value | group_concat
intensity | 0 | NUll
status | 0 | off,on
添加 Group by
应该可以完成工作:
SELECT Functions.FunctionName,Functions.value,group_concat(FunctionsWithStatus.StatusName)
from Functions
left join FunctionsWithStatus on Functions.FunctionName = FunctionsWithStatus.Functionsname
Group by Functions.FunctionName
您的查询格式不正确。您将未聚合列与聚合列混合在一起。 MySQL 将其视为没有 group by
的聚合查询 - returns 正好是一行。未聚合列的值来自 不确定 行。
您应该在 group by
中包含所有未聚合的列(这不仅是个好主意,而且是标准的 SQL):
select f.FunctionName, f.value, group_concat(fws.StatusName)
from Functions f left join
FunctionsWithStatus fws
on f.FunctionName = fws.Functionsname
group by f.FunctionName, f.value;
我有这两张表
FunctionName | value
-------------+---------
intensity | 0
status | NULL
和
FunctionName | StatusName
-------------+------------
status | ON
status | Off
我正在使用这个查询:
SELECT
Functions.FunctionName, Functions.value,
GROUP_CONCAT(FunctionsWithStatus.StatusName)
FROM
Functions
LEFT JOIN
FunctionsWithStatus ON Functions.FunctionName = FunctionsWithStatus.Functionsname
结果是:
Name | value | group_concat
status | 0 | off,on
我怎样才能同时检索 "intensity" 的值并得到如下结果:
Name | value | group_concat
intensity | 0 | NUll
status | 0 | off,on
添加 Group by
应该可以完成工作:
SELECT Functions.FunctionName,Functions.value,group_concat(FunctionsWithStatus.StatusName)
from Functions
left join FunctionsWithStatus on Functions.FunctionName = FunctionsWithStatus.Functionsname
Group by Functions.FunctionName
您的查询格式不正确。您将未聚合列与聚合列混合在一起。 MySQL 将其视为没有 group by
的聚合查询 - returns 正好是一行。未聚合列的值来自 不确定 行。
您应该在 group by
中包含所有未聚合的列(这不仅是个好主意,而且是标准的 SQL):
select f.FunctionName, f.value, group_concat(fws.StatusName)
from Functions f left join
FunctionsWithStatus fws
on f.FunctionName = fws.Functionsname
group by f.FunctionName, f.value;