mysql - SQL根据两列返回不同的行

标签 mysql sql

我有以下查询。是的,我知道,我没有发布架构,但所有连接都很好,我认为它不相关。

如何返回不同 counties.namecities.states_id 的所有行。

我以前使用过 distinct,但从未使用过两列。

谢谢

SELECT c.name AS id, CONCAT(c.name,", ",ci.states_id) AS value
FROM counties AS c
INNER JOIN zipcodes AS z ON z.counties_id=c.id
INNER JOIN cities_has_zipcodes AS chz ON chz.zipcodes_id=z.id
INNER JOIN cities AS ci ON ci.id=chz.cities_id
WHERE c.name LIKE "San Fr"
ORDER BY id LIMIT 100

最佳答案

你想要一个 GROUP_CONCAT函数和 GROUP BY 而不是 DISTINCT

SELECT c.name AS id, GROUP_CONCAT(c.name, ', ', ci.states_id SEPARATOR ', ') AS value
FROM counties AS c
INNER JOIN zipcodes AS z ON z.counties_id=c.id
INNER JOIN cities_has_zipcodes AS chz ON chz.zipcodes_id=z.id
INNER JOIN cities AS ci ON ci.id=chz.cities_id
WHERE c.name LIKE "San Fr"
GROUP BY c.name, ci.states_id
ORDER BY id LIMIT 100

关于mysql - SQL根据两列返回不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23549036/

相关文章:

php - 使用 codeigniter 的事件记录在 SQL 语句末尾放置 where 子句

mysql - 如何在 sql CASE WHEN 表达式中保持状态

MySQL:ORDER BY 值字符串中的位置

PHP - MYSQL ZingChart 时间提前7小时

mysql - 在同一查询中从借方列减去贷方?

mysql - 每人的行非规范化器/聚合行 - mysql

sql - 优化查询

sql - 仅当 sum 大于某个值时才返回行

mysql - 如何直接从 MySQL 解密 Cakephp3 加密数据?

mysql - CodeIgniter Mysql DB 查询的空结果集