У меня есть 2 таблицы, на которые я ссылаюсь:
1) Practitioner
:
+------+-------------------+---------------+
| PKey | FullName | PhonePersonal |
+------+-------------------+---------------+
| 2 | Dr. Albert Wong | 126777744 |
| 3 | Dr. William Kwong | 155556666 |
| 4 | Dr. Jonathan Chan | 4567888888 |
| 5 | Dr. Alice Lim | 66655532 |
| 6 | Dr. Jerry Wong | 123455578 |
| 7 | Dr. Louis Lane | 167844444 |
| 8 | Dr. Steven Teng | 122223000 |
+------+-------------------+---------------+
2) Center
:
+------+--------------+-----------------------------------+--------------+
| Pkey | Name | AddressStreet | AddressCity |
+------+--------------+-----------------------------------+--------------+
| 10 | Klinik Satu | 1, Jalan Harmoni, Taman Kesihatan | TTDI |
| 11 | Klinik Dua | 2, Jalan Harmoni, Taman Kesihatan | Pudu |
| 12 | Klinik Tiga | 3, Jalan Harmoni, Taman Kesihatan | Sentul |
| 13 | Klinik Empat | 4, Jalan Harmoni, Taman Kesihatan | Sentul Timur |
| 14 | Klinik Lima | 5, Jalan Harmoni, Taman Kesihatan | Cheras |
| 15 | Klinik Enam | 6, Jalan Harmoni, Taman Kesihatan | Bangsar |
| 16 | Klinik Tujuh | 7, Jalan Harmoni, Taman Kesihatan | Brickfields |
+------+--------------+-----------------------------------+--------------+
И Таблица Location
, имеющая 2 внешних ключа, ссылающихся на столбцы:
Loc_PractitionerId
ссылка PractitionerId
в таблице Practitioner
. Loc_CenterId
ссылка Center_Id
в таблице Center
.
Каков наилучший способ заполнить Location
данными, на которые он / будет ссылаться?
Желаемый результат:
CREATE TABLE Location (
Loc_PractitionerId INTEGER FOREIGN KEY,
Loc_CenterId INTEGER FOREIGN KEY
);
Как таковой:
+---------------------------+---------------------+
| Loc_practitionerId INT | Loc_centerId INT |
+---------------------------+---------------------+
| fkey data: PractitionerId | fkey data: CenterId |
| fkey data: PractitionerId | fkey data: CenterId |
| fkey data: PractitionerId | fkey data: CenterId |
| fkey data: PractitionerId | fkey data: CenterId |
| fkey data: PractitionerId | fkey data: CenterId |
| fkey data: PractitionerId | fkey data: CenterId |
| fkey data: PractitionerId | fkey data: CenterId |
+---------------------------+---------------------+
или с фиктивными данными, например:
+------------------------+------------------+
| Loc_practitionerId INT | Loc_centerId INT |
+------------------------+------------------+
| 2 | 10 |
| 3 | 11 |
| 4 | 12 |
| 5 | 13 |
| 6 | 14 |
| 7 | 15 |
| 8 | 16 |
+------------------------+------------------+
Я попытался использовать следующий запрос:
INSERT INTO "Location" ( "Loc_practitionerId", "Loc_centerId")
values
((SELECT "PractitionerId" FROM "Practitioner"),
(SELECT "CenterId" from "Center"))
Но получите:
ОШИБКА: более одной строки, возвращенной подзапросом, используемым в качестве выражения SQL состояние: 21000
Я использую PostgreSQL 12