我有一个名为FieldList的表,如下所示:

ElementName|Description|comp_id|FieldName
-----------------------------------------
Name       | red       | 1     | names
Name       | blue      | 7     | names
field      | red       | 1     | names
boxes      | blue      | 5     | blues
field      | orange    | 7     | reds


我想显示一个新表,该表仅显示相同的ElementNames,然后显示它们属于哪个comp_id,因此如下所示:

ElementName| comp_id| comp_id
-----------------------------
Name       | 1      | 7
field      | 1      | 7


它不必看起来完全像这样,但重点是我希望能够加入并显示相同但具有不同ElementNamescomp_id
这是我已经拥有的少量sql代码,但显然不起作用。

SELECT a.comp_id, a.ElementName, b.ElementName
FROM FieldList a
INNER JOIN FieldList b ON a.ElementName = b.ElementName;

最佳答案

您似乎想要具有相同comp id的元素名称。如果是这样,可以这样使用group_concat()

select group_concat(elementname), comps
from (select fl.elementname, group_concat(fl.comp_id order by fl.comp_id) as comps
      from fieldlist fl
      group by fl.elementname
     ) en
group by comps;


实际上,这会产生带有两个列表的行:

Name,field     1,7


但这似乎包含您想要的信息。

10-02 05:30