php&mysql 查找父类别名称

标签 php mysql left-join inner-join

我对内连接、左连接命令有疑问。

我的类别表是:

ID  | parent | title
1   | 0      | First Category
2   | 1      | Other Category

I have list categorys and I want get parents category title at sql command.

I have tried:

SELECT cat.ID, cat.title, cat2.title as parentcatname, cat.parent
FROM   categories cat INNER JOIN categories cat2 ON cat2.ID=cat.parent

但是它不起作用。

最佳答案

您必须使用LEFT JOIN才能提取所有类别,无论它们是否有父类别。 INNER JOIN 过滤掉所有不匹配的内容。

SELECT c.id, c.title, c.parent, p.title parent_title 
  FROM categories c LEFT JOIN categories p 
    ON c.parent = p.id

输出:

| ID |          TITLE | PARENT |   PARENT_TITLE |
-------------------------------------------------
|  1 | First Category |      0 |         (null) |
|  2 | Other Category |      1 | First Category |

这里是SQLFiddle 演示

关于php&mysql 查找父类别名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17748533/

相关文章:

mysql - 安装mysql-workbench后无法通过套接字 '/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器

mysql - 使用Where 子句限制左连接上的行显示

php - Laravel 4 无法多次使用 ->on( ) 加入多个条件

php - Laravel 获取相关模型的相关模型

php - 使用 MySQL 和 PHP 创建 "Secret Santa"生成器

php - 在我的应用程序日志文件中写入PHP日志

php - 查找数组中每个元素的第一个数字并将它们相加,而不使用字符串

mysql - SQL : Select row where a column of this row does't match with a certain value

MySQL:在表列和 group_concat 中使用逗号分隔的 id

mysql - 可以通过一个查询引用两个特定的表