【问题标题】:How can I list the data of foreign keys linked to the id of the table?如何列出链接到表 id 的外键数据?
【发布时间】:2020-11-10 15:05:05
【问题描述】:

我要做的是创建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));

【问题讨论】:

    标签: python sql postgresql psycopg2


    【解决方案1】:

    类似这样的:

    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 中的company_id 字段来查找每个公司的department 信息。找到公司的部门后,通过使用department_unit 中的department_id 字段链接回department 表,可以找到每个部门的部门单位。最终结果是一条将公司与其部门单位连接起来的链条。

    【讨论】:

    • 您的回答解决了我的问题,但我想我不明白。更确切地说,我无法理解。我不知道如何处理数据库问题?非常感谢您的帮助。
    • @sananesanane。您必须更明确地说明数据库问题是什么?
    • 很抱歉我的英语不是很好。我想我写错了。我必须设计一个数据库并编写查询。但是,我无法理解与数据库相关的主题。虽然我读过文件。
    • 我建议您找一本用您的语言编写的入门书籍和/或教程,涵盖SQL 数据库的基础知识。您想要的内容涵盖了很多信息,并且超出了SO 答案的范围。我将更新我的答案以解释为什么这个特定的查询有效。
    • 非常感谢您的帮助。我需要学习更多
    猜你喜欢
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2010-11-12
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    相关资源
    最近更新 更多