gpt4 book ai didi

mysql - 使用相同的表和属性返回不同类型的人

转载 作者:行者123 更新时间:2023-11-29 05:35:48 25 4
gpt4 key购买 nike

我想创建一个查询,使用下表返回 parent 及其监护人。我的问题是如何使用 person 表中的 name 属性两次来返回看护人的姓名和 parent 的姓名。任何示例代码将不胜感激。我知道我没有很好地解释它,但是如果有人理解我的意思,请随时编辑上面的内容。更具体地说,我只想使用人员表来存储有关 parent 及其子女的信息,并使用显示每个相关人员的姓名。我怎样才能用一张 table 做到这一点。

enter image description here

使用提供的一些建议,我能够创建查询,但由于我的表存在问题,它无法工作。我正在使用下表:

CREATE TABLE Person
(
personID INT NOT NULL,
name VARCHAR(50),
address VARCHAR(70),
phone VARCHAR(15),
email VARCHAR(30),
year INT,
PRIMARY KEY (personID)
);

CREATE TABLE Guardian
(
parentID INT NOT NULL,
childID INT NOT NULL,
PRIMARY KEY (parentID, childID)
FOREIGN KEY (parentID) REFERENCES (personID),
FOREIGN KEY (childID) REFERENCES (personID)
);

我应该在何处使用什么语句才能使其正常工作。我认为问题在于两个外键语句都引用了 person 表中的同一个键。如何在查找父项和子项时引用相同的属性而不会出现任何错误。

最佳答案

您可以两次连接一个表,但您必须使用不同的表别名。

试试这个:

SELECT
Child.name,
Parent.name
FROM Person AS Child
JOIN Guardian
ON Child.personID = Guardian.child
JOIN Person AS Parent
ON Parent.personID = Guardian.parent

关于mysql - 使用相同的表和属性返回不同类型的人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10731519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com