gpt4 book ai didi

mysql - 在一列中具有相同名称且在另一列中具有相同 ID 的组值

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:45 25 4
gpt4 key购买 nike

我有以下情况:

对于我当前的查询,这是我获取数据的方式:

enter image description here

问题是我想合并 straatplaatsnaam 并将它们作为一行来读取。每个 straat 都有与其对应的 plaatsnaam 相同的 value_item_id

是否可以采用 straatplaatsnaam 并通过它们的 value_item_id 将它们组合在一起?

我当前的查询如下所示:

SELECT fields.id as field_id,
fields.name,
fields_categories.field_id as catfield_id,
fields_values.field_id as fieldvalue_id,
fields_values.item_id as value_item_id,
fields_values.value,
content.id as content_id
FROM snm_fields fields
INNER JOIN snm_fields_categories fields_categories
ON fields.id = fields_categories.field_id
INNER JOIN snm_fields_values fields_values
ON fields_categories.field_id = fields_values.field_id
INNER JOIN snm_content content
ON content.id = fields_values.item_id
WHERE fields.name in ('straat', 'plaatsnaam')

最后我想把 Ridderstraat 5Heenvliet 放在同一行。我知道这也可以用 PHP 来完成,但我认为直接用 SQL 来做更好。

最佳答案

看来您只是想要每个 item_id 的 plaats 和 straat。如果是这样,只从表 snm_fieldssnm_fields_values 中读取就足够了。根据 item_id 使用条件聚合:

select 
fv.item_id,
max(case when f.name = 'plaatsnaam' then fv.value end) as plaats,
max(case when f.name = 'straat' then fv.value end) as straat
from snm_fields_values fv
join snm_fields f on f.id = fv.field_id
group by fv.item_id
order by fv.item_id, plaats, straat;

或者,如果您可以让查询知道 ID,甚至:

select 
item_id,
max(case when field_id = 3 then value end) as plaats,
max(case when field_id = 1 then value end) as straat
from snm_fields_values
group by item_id
order by item_id, plaats, straat;

关于mysql - 在一列中具有相同名称且在另一列中具有相同 ID 的组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46832583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com