MySql Select 来自 table 父子关系的记录

MySql Select records from table with father and sons relationships

您好,欢迎来到我的问题

我有这个 table:

CREATE TABLE IF NOT EXISTS business(
  businessname varchar(250) NOT NULL,
  title varchar(250) NOT NULL,
  registerdate datetime NOT NULL,
  id int NOT NULL,
  city varchar(50) NOT NULL,
  tk varchar(10) NOT NULL,
  number varchar(20) NOT NULL,
  branch int,
  doy_id int NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (branch) REFERENCES business(id)
  ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (doy_id) REFERENCES doy(id_kataxorisis)
  ON DELETE CASCADE ON UPDATE CASCADE
)

如您所见,table 代表一家公司,虽然很差,但确实如此。

分支栏代表一家公司的“child”

我想找到(用select语句)每家公司的名称及其parent公司,如果公司没有parent公司那么它应该显示NULL。

我一直在想这个问题,但我什至不知道如何开始。你能帮帮我吗?

您可以自己加入table。您必须为查询包含的 table 的每个实例添加别名。

例如,您可以这样做:

select
  c.id, c.businessname,
  p.id, p.businessname
from business c
left join business p on p.id = c.branch

注意:查询使用 LEFT JOIN 来确保您看到没有父行的公司。在这种情况下,它在父值的位置显示空值。