给定两个表:
CREATE TABLE table1(id INT4, "name" TEXT);
CREATE TABLE table2(table1_id INT4, name1 TEXT, name2 TEXT, name3 TEXT);
INSERT INTO table1 (id, "name") VALUES
(1, 'Jimmy'),
(2, 'John'),
(3, 'Sally'),
(4, 'Harry')
;
INSERT INTO table2 (name1, name2, name3) VALUES
('Jimmy', 'jim mcneil', 'James Mc''Neil'),
('Jonathon', 'Jon J.', 'Jon J. Jr.'),
('Sally S', 'Sally', 'Sally S. Smith'),
('Harry, Jr.', 'Harry H.', 'Harry')
;
如何加入 table1.name 可能等于 table2 中的任何名称的位置?大意是:
SELECT * FROM table1 a
FULL JOIN table2 b
ON a."name" = b.name1 OR a."name" = b.name2 OR a."name" = b.name3
;
这FULL JOIN
(我认为)很重要,因为我想知道(并查看)哪里有匹配,哪里没有匹配。