仅返回“0”的MySQL查询;普通的;一组行的列(以及PHP,如果需要)

仅返回“0”的MySQL查询;普通的;一组行的列(以及PHP,如果需要),mysql,Mysql,我需要构建一个MySQL查询,只返回一组行的公共列。我有一个名为projects的表,其中包含id\u country、id\u auto、id\u prov和id\u pobl。我使用此查询按区域选择一组项目: SELECT DISTINCT codpais, codauto, codprov, codpobl FROM projects WHERE area=1 这让我想起: id_country | id_auto | id_prov | id_pobl 155 | 1

我需要构建一个MySQL查询,只返回一组行的公共列。我有一个名为projects的表,其中包含id\u country、id\u auto、id\u prov和id\u 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\u country、id\u auto和id\u prov。如果结果不一样,一个选项将返回id_pobl为NULL。如果id\u auto、id\u prov或id\u pobl在我不需要的每个结果上都不相同。如果id_国家不同,我无论如何都需要它

我解释这一点是因为我的英语不好,所以你可以理解我。在我的网站上,我需要打印常见的国家/省/市。。。一组项目的一部分。例如,如果155=西班牙,1=马德里大学,4=马德里,31,10和25是马德里省的城市,我只需要显示(在网站上):西班牙/马德里大学/马德里大学。如果每一排的id_country和id_auto相同,我将显示:西班牙/马德里大学。如果每个id_国家都不一样,我将显示由COMA分隔的国家,如:西班牙、葡萄牙、法国

好吧,我说的是名字,但我需要ID,稍后我会做连接/左连接

更新,示例:

我有一组5个项目,每个项目都有一个id_国家、id_汽车、id_prov和id_pobl。当我必须用PHP显示它时,我必须显示常见的国家/地区、auto、prov和pobl

如果每个项目中的country、auto、prov和pobl都是相同的,那么我需要使用PHP在HTML呈现页面中显示:

Country / Auto / Prov / Pobl
如果每个项目的国家、汽车和prov相同,但pobl不同,我需要显示:

Country / Auto / Prov
Country / Auto
如果国家/地区和汽车相同,但prov和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

我不能完全确定我是否理解你想要实现的目标。你能展示一个你希望得到的输出的例子吗?它总是仅仅是这些列吗?Hello@Neville K和@dmcnelis:我已经添加了一个我需要的PHP/HTML输出的例子,以及4种可能的情况。Hello@dnagirl,谢谢。我在谷歌上搜索了一个(BLOB)结果(我在Navicat上看到了),但我不明白到底是什么。你能给我解释一下吗?如果我必须用codato和codprov对pobl做同样的操作,我需要像
GROUP\u CONCAT(DISTINCT codprov)
一样复制相同的代码,然后只
GROUP BY codpais,codauto
?@udexter:我希望Navicat会显示一个BLOB,因为它没有显示长字符串的空间。我不使用Navicat,但我打赌双击BLOB会显示字符串。关于您的分组,您可以将
GROUP\u CONCAT(不同的字段名)
放在codauto和codprov周围,但将
GROUP BY
更改为codpais。