首页 > 解决方案 > 如何列出链接到表 id 的外键数据?

问题描述

我要做的是创建4个相互关联的渐进类别类。我不知道我做的方法是否正确。不幸的是,我已经阅读该文件好几天了。但我没有取得太大进展

在“公司”类中,如何查询属于“部门单元”类的所有数据?

create_table_company= '''CREATE TABLE company(
ID SERIAL  PRIMARY KEY , 
NAME VARCHAR NOT NULL ,
); '''

create_table_department = '''CREATE TABLE department (
ID SERIAL  PRIMARY KEY , 
NAME VARCHAR NOT NULL ,
company_id BIGINT, 
FOREIGN KEY(company_id) REFERENCES COMPANY(id)); '''

create_table_department_unit = '''CREATE TABLE department_unit(
ID SERIAL  PRIMARY KEY , 
NAME VARCHAR NOT NULL ,
department_id BIGINT,
FOREIGN KEY(department_id) REFERENCES DEPARTMENT(id)); 

create_table_department_unit_categroy = '''CREATE TABLE department_unit_category(
ID SERIAL  PRIMARY KEY , 
NAME VARCHAR NOT NULL ,
department_unit_id BIGINT,
FOREIGN KEY(department_unit_id) REFERENCES DEPARTMENT_UNİT(id));

标签: pythonsqlpostgresqlpsycopg2

解决方案


像这样的东西:

SELECT 
   c.id, c.name,  du.*
FROM 
   company AS c
JOIN 
   department AS d 
ON
   c.id = d.company_id 
JOIN 
  department_unit AS du 
ON 
   du.department_id = d.id
;

更新

上面的查询department_unit通过它们的公共字段连接表来获取信息。在这种情况下,company表格通过使用链接回公司的字段来查找department每个公司的信息。找到公司的部门后,通过使用字段 in链接回表,可以找到每个部门的部门单位。最终结果是一条将公司与其部门单位连接起来的链条。company_iddepartmentdepartment_iddepartment_unitdepartment


推荐阅读