2 つのテーブルが与えられた場合:
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
一致する場所と一致しない場所の両方を知りたい(そして見たい)ので、これは(私が思うに)重要です。