Php 用相关值替换值

Php 用相关值替换值,php,sql,Php,Sql,我有一个表,其中显示了库的详细信息,每个条目都有一个库ID,其中一个字段是Gallery\u parent,如果记录没有父项,则为0,如果记录没有父项,则为其父项的编号 ID| Name | parent 1 | gallery A | 0 2 | gallery B | 0 3 | gallery C | 0 4 | gallery D | 1 5 | gallery E | 2 如何将父库编号替换为父库名称?您需要两个用户使用左连接将表自身连接起来 SELECT a.ID,

我有一个表,其中显示了库的详细信息,每个条目都有一个库ID,其中一个字段是Gallery\u parent,如果记录没有父项,则为0,如果记录没有父项,则为其父项的编号

ID| Name      | parent
1 | gallery A | 0
2 | gallery B | 0
3 | gallery C | 0
4 | gallery D | 1
5 | gallery E | 2

如何将父库编号替换为父库名称?

您需要两个用户使用
左连接将表自身连接起来

SELECT  a.ID,
        a.Name,
        b.Name as ParentName               //-- you can apply COALESCE here
FROM    tableName a
        LEFT JOIN   tableName b
            ON a.parent = b.id

上面的答案显示了如何选择数据,如果您确实想要更新,并且如果父项是varchar,您可以执行以下操作

UPDATE gal t1
LEFT JOIN gal t2 ON t1.parent=t2.ID
SET t1.parent = t2.name

您正在尝试更改数据库的架构吗?还是只想查看每个库的父级名称?您想做什么<代码>更新
选择
?我认为他需要替换而不是select@ErdinçÇorbacı我在考虑这个问题,但我也认为他只想选择,因为如果字段是数字的,他不能用varchar更新字段,除非他想先更改模式。哈哈,这也比我强。删除了我的答案,因为上面的内容应该能让你找到你想要的东西。@Erdinçïorbacı当你听到“替换”这个词时,并不意味着你想更新记录:染料,我只是意识到SQLFiddle演示是什么,对网站来说是新的,非常聪明,非常感谢。