Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Can';t在三个表和联接操作相关的问题上找不到解决方案_Sql_Join - Fatal编程技术网

Sql Can';t在三个表和联接操作相关的问题上找不到解决方案

Sql Can';t在三个表和联接操作相关的问题上找不到解决方案,sql,join,Sql,Join,因此,我无法解决以下问题。提供了三个表格: 我需要使用join编写一个代码,以便列出所有对和朋友对的全名。我只知道可能需要两个连接,其中一个是自连接。我尝试将persons表与friends表联接,但其中一列的结果是name,另一列是and id,我不知道如何进行两个连续联接,以便每个名称都有相应的friends名称。以下是表格信息: CREATE TABLE persons ( id INTEGER PRIMARY KEY AUTOINCREMENT, fullname TEXT, age I

因此,我无法解决以下问题。提供了三个表格:

我需要使用join编写一个代码,以便列出所有对和朋友对的全名。我只知道可能需要两个连接,其中一个是自连接。我尝试将persons表与friends表联接,但其中一列的结果是name,另一列是and id,我不知道如何进行两个连续联接,以便每个名称都有相应的friends名称。以下是表格信息:

CREATE TABLE persons (
id INTEGER PRIMARY KEY AUTOINCREMENT,
fullname TEXT,
age INTEGER);



INSERT INTO persons (fullname, age) VALUES ("Bobby McBobbyFace", "12");
INSERT INTO persons (fullname, age) VALUES ("Lucy BoBucie", "25");
INSERT INTO persons (fullname, age) VALUES ("Banana FoFanna", "14");
INSERT INTO persons (fullname, age) VALUES ("Shish Kabob", "20");

CREATE table hobbies (
id INTEGER PRIMARY KEY AUTOINCREMENT,
person_id INTEGER,
name TEXT);

INSERT INTO hobbies (person_id, name) VALUES (1, "drawing");
INSERT INTO hobbies (person_id, name) VALUES (2, "dancing");
INSERT INTO hobbies (person_id, name) VALUES (3, "skating");
INSERT INTO hobbies (person_id, name) VALUES (4, "coding");

CREATE table friends (
id INTEGER PRIMARY KEY AUTOINCREMENT,
person1_id INTEGER,
person2_id INTEGER);

INSERT INTO friends (person1_id, person2_id)
VALUES (1, 4);
INSERT INTO friends (person1_id, person2_id)
VALUES (2, 3);

你只是在找两个连接点吗

select p1.fullname, p2.fullname
from friends f join
     persons p1
     on f.person1_id = p1.id join
     persons p2
     on f.person2_id = p2.id;

你只是在找两个连接点吗

select p1.fullname, p2.fullname
from friends f join
     persons p1
     on f.person1_id = p1.id join
     persons p2
     on f.person2_id = p2.id;

感谢您的规格和代码。请在代码问题中给出一个--cut&paste&runnable代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和清晰的说明和解释。为你能做的部分给出代码。但是——(显然——)这是一个常见问题。在考虑发帖之前,请始终用谷歌搜索任何错误消息,以及你的问题/问题/目标的许多清晰、简洁和准确的措辞,包括和不包括你的特定字符串/名称;阅读许多答案。如果你发布一个问题,用一句话作为标题。请参阅文本上方的投票箭头和鼠标。可能重复感谢规范和代码。请在代码问题中给出一个--cut&paste&runnable代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和清晰的说明和解释。为你能做的部分给出代码。但是——(显然——)这是一个常见问题。在考虑发帖之前,请始终用谷歌搜索任何错误消息,以及你的问题/问题/目标的许多清晰、简洁和准确的措辞,包括和不包括你的特定字符串/名称;阅读许多答案。如果你发布一个问题,用一句话作为标题。请参阅文本上方的投票箭头鼠标(&S)。可能重复的