MySQL从表中引用自己的id

标签 mysql sql


我有一个包含两个 id 列和一个 name 列的表,第一个 id 列是主键,第二个引用的是主键或为 NULL。

+--+-----+----+
|id|subid|name|
+--+-----+----+
|1 |NULL |Tom |
+--+-----+----+
|2 |1    |Will|
+--+-----+----+

给定一个名称,我想仅使用一个 SQL 语句来输出具有该给定名称的所有条目,但如果辅助 id 字段引用主字段键,以输出该条目。

使用上面的示例,如果我输入“Tom”,我想输出 name =“Tom”,如果我输入“Will”我也想输出 name = "Tom"吗?

仅通过一个 SQL 语句就可以实现这一点,因为我想避免循环结果。

最佳答案

是的。您想为此使用 join 并在 select 中使用表达式:

select t.*
from table t left outer join
     table sub
     on t.subid = sub.id
where 'Tom' = t.name or 'Tom' = sub.name;

关于MySQL从表中引用自己的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21205975/

相关文章:

mysql-5.6.27|重置根密码 |没有密码字段

mysql - 如何在同一列上找到具有多个不同值的结果?

sql - 按多个条件分组

mysql - 显示 MySQL 中的 phpMyAdmin 数据库

sql - 如何在具有大量记录的表中优化分组依据

php - 将许多记录聚合到第二个 mysql 表的每个结果中

php - 在一个 mysql 中连接两个查询

MySQL:填充随机迭代位置值

评论数据库的 PHP 结构

用于检查 INSERT 是否成功的 SQL 语法?