我有一个现有的产品数据库,我正在编写一个管理工具(在PHP中)。 该数据库包含以下“类别”表:
Table Categories
--------------------
PK | id
FK | parent_id
| title
现在外键“parent_id”包含从同一个表中获取的id,如果它是最顶层的类别,则为“0”。
为了创建概述,我现在需要一个mysql语句,它会产生以下数据:
id | parent_id | title | parent_title
parent_title是我不知道的地方。我创建了以下声明:
SELECT
c1.id,
c1.parent_id,
c1.title,
c2.title as `parent_title`
FROM
categories c1,
categories c2
WHERE
c1.parent_id = c2.id
我现在只获得所有具有父类别的类别。
应该很简单,可能已在这里得到解答。我想我通过搜索现有文章找不到合适的词来搜索它。
感谢您的帮助, 丹尼尔
答案 0 :(得分:3)
您可以使用LEFT OUTER JOIN
:
SELECT c1.id,
c1.parent_id,
c1.title,
c2.title as `parent_title`
FROM categories c1
left outer join categories c2 on c1.parent_id = c2.id
答案 1 :(得分:1)
为了帮助您了解SQL联接,请查看Jeff Atwood's Visual Guide
答案 2 :(得分:0)
你正在寻找一个OUTER JOIN :)