加入 3 个具有不同 FK 的表
Join 3 tables with different FKs
我正在尝试使用一些 WHERE 子句在 SELECT 查询中将 3 个表连接在一起。
Table 1 链接到 Table 2,Table 2 链接到 Table 3.
表格如下:
Author
PK: Author_ID
FK: Location_ID
Author_First_Name
Location
PK: Location_ID
City
Articles
PK: Article_ID
FK: Author_ID
Article_Name
到目前为止,我已经整理了这个查询,但我无法确定如何加入第二个外键 'Location_ID'
SELECT
Articles.Article_Name
FROM
Articles
INNER JOIN Author
ON Articles.Author_ID
INNER JOIN Location
ON
WHERE Author.Author_First_Name='Sam'
AND Location.City<>'Detroit'
正确的语法是这样的:
SELECT a.Article_Name
FROM Articles a INNER JOIN
Author au
ON a.Author_ID = au.Author_ID INNER JOIN
Location l
ON l.Location_ID = au.Location_Id
WHERE au.First_Name = 'Sam' AND l.City <> 'Detroit';
请注意,使用 table 别名使查询更易于编写和阅读。此外,您需要连接 ON
子句的两个 table 的条件。
您忘记比较 table 个字段
SELECT * FROM articles ar
LEFT JOIN author a ON ar.author_id = a.author_id
LEFT JOIN location l ON a.location_id = l.location_id
WHERE a.author_first_name = 'Sam' AND l.city <> 'Detroit'
我正在尝试使用一些 WHERE 子句在 SELECT 查询中将 3 个表连接在一起。 Table 1 链接到 Table 2,Table 2 链接到 Table 3.
表格如下:
Author
PK: Author_ID
FK: Location_ID
Author_First_Name
Location
PK: Location_ID
City
Articles
PK: Article_ID
FK: Author_ID
Article_Name
到目前为止,我已经整理了这个查询,但我无法确定如何加入第二个外键 'Location_ID'
SELECT
Articles.Article_Name
FROM
Articles
INNER JOIN Author
ON Articles.Author_ID
INNER JOIN Location
ON
WHERE Author.Author_First_Name='Sam'
AND Location.City<>'Detroit'
正确的语法是这样的:
SELECT a.Article_Name
FROM Articles a INNER JOIN
Author au
ON a.Author_ID = au.Author_ID INNER JOIN
Location l
ON l.Location_ID = au.Location_Id
WHERE au.First_Name = 'Sam' AND l.City <> 'Detroit';
请注意,使用 table 别名使查询更易于编写和阅读。此外,您需要连接 ON
子句的两个 table 的条件。
您忘记比较 table 个字段
SELECT * FROM articles ar
LEFT JOIN author a ON ar.author_id = a.author_id
LEFT JOIN location l ON a.location_id = l.location_id
WHERE a.author_first_name = 'Sam' AND l.city <> 'Detroit'