MySQL 连接和分组列

标签 mysql

在以下情况下,我需要以某种方式将一些列组合成一个。我有以下查询:

SELECT a.id,b.id,c.id,d.id
FROM some_table AS a
LEFT JOIN some_table AS b ON ( a.id=b.parent_id )
LEFT JOIN some_table AS c ON ( b.id=c.parent_id )
LEFT JOIN some_table AS d ON ( c.id=d.parent_id )
WHERE a.id = '22'

结果:

+--------+--------+--------+--------+
|  a.id  |  b.id  |  c.id  |  d.id  |
+--------+--------+--------+--------+
|    22  |    24  |    25  |  null  |
|    22  |   381  |  null  |  null  |
|    22  |   418  |  2389  |  9841  |
+--------+--------+--------+--------+

这是一个包含 220,000 多行的类别表。

我需要最后一个 ID(不是 NULL)。所以在这种情况下我需要 (25,381,9841)

实现此目标的最简单方法是什么?

最好的结果应该是:

+------+
|   id |
+------+
|   25 |
|  381 |
| 9841 |

最佳答案

参见 COALESCE()。这就是您所需要的!

关于MySQL 连接和分组列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17458650/

相关文章:

mysql - glassfish 4 & MySQL & JSTL

Mysql循环和插入

mysql - 将上一行子查询转换为 MySQL 中的联接

php - Laravel 关系问题

php - 转义用户代理 : $mysqli->real_escape_string does not work

mysql - 外键格式不正确 :MySQL

mysql - 我不明白我做错了什么

mysql - 选择仅包含大写字母的所有字段

mysql - 蛋糕PHP : My LIKE function in my query doesn't work

php - 使用 PHP 连接到 MySQL 的问题