gpt4 book ai didi

MySQL 查询仅返回一组行的 "common"列(如果需要,还可以使用 PHP)

转载 作者:行者123 更新时间:2023-11-29 09:12:01 24 4
gpt4 key购买 nike

我需要构建一个 MySQL 查询,该查询仅返回一组行的公共(public)列。我有一个名为 projects 的表,其中包含 id_country、id_auto、id_prov 和 id_pobl。我使用以下查询按区域选择一组项目:

SELECT DISTINCT codpais, codauto, codprov, codpobl
FROM projects
WHERE area=1

这让我返回:

id_country | id_auto | id_prov | id_pobl
155 | 1 | 4 | 31
155 | 1 | 4 | 10
155 | 1 | 4 | 25

但是从上面的查询中,我只希望每行的结果都相等:id_country、id_auto 和 id_prov。如果结果不同,一种选择是将 id_pobl 返回为 NULL。如果 id_auto、id_prov 或 id_pobl 在每个结果上都不相同,我不需要。如果 id_country 不同,我仍然需要它。

我解释一下是因为我的英语不好所以你可以理解我。在我的网站中,我需要打印一组项目的共同国家/省/市...。例如,如果 155=西类牙、1=马德里自治区、4=马德里,并且 31、10 和 25 是马德里省的城市,我只需要显示(在网站中):西类牙/马德里自治区/马德里。如果每行只有 id_country 和 id_auto 相同,我将显示:Spain/Comunidad de Madrid。如果每个 id_country 不同,我将显示用逗号分隔的国家/地区,例如:西类牙、葡萄牙、法国...

好吧,我说的是名称,但我需要 ID,稍后我将进行 JOIN/LEFT JOIN

更新,示例:

我有一组 5 个项目,每个项目都有 id_country、id_auto、id_prov 和 id_pobl。当我必须用 PHP 显示它时,我必须显示共同的国家、汽车、省和 POBL。

如果每个项目中的国家、汽车、省和 pobl 都相同,我需要使用 PHP 在 HTML 渲染页面中显示:

Country / Auto / Prov / Pobl

如果每个项目中的国家/地区、汽车和省都相同,但 pobl 不同,我需要显示:

Country / Auto / Prov

如果国家和汽车相同,但省和省不同,我需要显示:

Country / Auto

如果每个项目的国家/地区都不同,我需要显示国家/地区列表:

Country 1, Country 2, Country 3...

希望现在更清楚了!

提前谢谢您!

最佳答案

我认为你想要的是分组查询。像这样的东西:

SELECT codpais, codauto, codprov, GROUP_CONCAT(DISTINCT codpobl) AS pobl 
FROM projects
WHERE area=1
GROUP BY codpais, codauto, codprov

关于MySQL 查询仅返回一组行的 "common"列(如果需要,还可以使用 PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5311420/

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