JOIN
テーブルAddress
に 2 回アクセスする必要がありHomeAddress
ますCorr_Address
。
SELECT
s.First_Name,
s.Last_Name,
ah.Line1 AS HomeLine1,
ah.Line2 AS HomeLine2,
ah.Line3 AS HomeLine3,
ah.Post_Code AS HomePost_Code,
ac.Line1 AS CorrLine1,
ac.Line2 AS CorrLine2,
ac.Line3 AS CorrLine3,
ac.Post_Code AS corrPostCode
FROM Staff AS s
INNER JOIN address AS ah ON s.Home_Address = ah.address_ID
INNER JOIN address AS ac ON s.corr_address = ac.addressid;
アップデート:
各アドレスのアドレスの詳細を 1 つのフィールドにまとめるには、次のようにします。
SELECT
s."First_Name",
s."Last_Name",
ah."Line1" || ', ' || ah."Line2" || ', ' || ah."Line3" || ', ' || ah."Post_Code" AS HomeAddress,
ac."Line1" || ', ' || ac."Line2" || ', ' || ac."Line3" || ', ' || ac."Post_Code" AS CorrAddress
FROM Staff s
INNER JOIN address ah ON s."Home_Adress" = ah."Address_ID"
INNER JOIN address ac ON s."Corr_Address" = ac."Address_ID";
ここで実際にそれを見てください:
これにより、次のようなものが得られます。
| FIRST_NAME | LAST_NAME | HOMEADDRESS | CORRADDRESS |
------------------------------------------------------------------------------------------
| foo | bar | line11, line12, line13, 34222 | line12, line22, line32, 653 |
| foo2 | bar2 | line13, line23, line33, 34545 | line14, line25, line35, 33452 |