当我想到这个时,我只是在写一个查询。我的查询将使用内部联接或左联接产生完全相同的结果,因为我正在连接外键关系上的表,首先从引用的表中选择。
以下是一个简化示例。两个查询之间是否存在差异(性能或其他方面)?
我正在使用postgres 9.5
由于
CREATE TABLE a(
a_id INT PRIMARY KEY,
a_name VARCHAR(10) NOT NULL
);
CREATE TABLE b(
b_id INT PRIMARY KEY,
a_id INT NOT NULL REFERENCES a(a_id),
b_data VARCHAR(50) NOT NULL
);
SELECT * FROM b INNER JOIN a ON b.b_id = a.a_id;
SELECT * FROM b LEFT JOIN a ON b.b_id = a.a_id;
修改 请注意,这不是This question的副本,原因是我特别询问从引用加入外键关系中的引用表时的情况。