【发布时间】:2017-01-24 16:17:24
【问题描述】:
我有两个父表引用联结表中的外键:
schoolA_courses (
id INTEGER PRIMARY KEY AUTOINCREMENT,
course_prefix TEXT,
course_number INTEGER,
course_title TEXT
schoolB_courses (
id INTEGER PRIMARY KEY AUTOINCREMENT,
course_prefix TEXT,
course_number INTEGER,
course_title TEXT,
course_url TEXT)
schoolB_equivalencies (
equivalency_id INTEGER PRIMARY KEY AUTOINCREMENT,
schoolA_id INTEGER NOT NULL,
schoolB_id INTEGER NOT NULL,
is_archived INTEGER NOT NULL,
FOREIGN KEY (schoolA_id) REFERENCES schoolA_courses (id),
FOREIGN KEY (schoolB_id) REFERENCES schoolB_courses (id),
UNIQUE (schoolA_id, schoolB_id) ON CONFLICT IGNORE)
我正在尝试从两个父表中的匹配行中选择所有列,但我的查询只返回-
schoolB_courses.course_prefix,
schoolB_courses.course_number,
schoolB_courses.course_title,
schoolB_courses.course_url
-来自一个父表(schoolB)。如何修改我的查询以从两个表中检索指定的字段,例如
schoolA_courses.course_prefix,
schoolA_courses.course_number,
schoolA_courses.course_title,
schoolB_courses.course_prefix,
schoolB_courses.course_number,
schoolB_courses.course_title,
schoolB_courses.course_url
我使用的查询是:
SELECT
schoolA_courses.course_prefix,
schoolA_courses.course_number,
schoolA_courses.course_title,
schoolB_courses.course_prefix,
schoolB_courses.course_number,
schoolB_courses.course_title,
schoolB_courses.course_url
FROM schoolB_equivalencies
INNER JOIN schoolA_courses
ON schoolA_courses.id = schoolB_equivalencies.schoolA_id
INNER JOIN schoolB_courses
ON schoolB_courses.id = schoolB_equivalencies.schoolB_id');
查询的结果是
array (size=2)
0 =>
array (size=4)
'course_prefix' => string 'ARCH' (length=4)
'course_number' => string '111' (length=3)
'course_title' => string 'Introduction to Structures' (length=26)
'course_url' => string 'www.google.com' (length=14)
1 =>
array (size=4)
'course_prefix' => string 'ARCH' (length=4)
'course_number' => string '111' (length=3)
'course_title' => string 'Introduction to Structures' (length=26)
'course_url' => string 'www.google.com' (length=14)
【问题讨论】:
-
结果前三列的值是多少?
-
查询返回的是 schoolB_courses.course_prefix、schoolB_courses.course_number、schoolB_courses.course_title 和 schoolB_courses.course_url 的值,但没有返回 schoolA 表的值。
-
你没有回答我的问题。
-
所有列中的值都是字符串,除了 id 列 - 这就是您要问的吗?
-
我要问的是查询结果的前三列中字符串的值是什么。
标签: join sqlite foreign-keys