Postgresql: объединить данные 2 столбцов в 1 столбец - PullRequest
0 голосов
/ 08 мая 2018

Я перемещаю данные из одной БД в другую (обе postgresql). Я хочу объединить значения столбцов имени и фамилии из исходной БД в столбец имени целевой БД. Когда я пытаюсь выполнить запрос, я получаю сообщение об ошибке: psycopg2.ProgrammingError: more than one row returned by a subquery used as an expression При проверке других потоков здесь, в SO, я обнаружил сцепление . Я добавил LIMIT 1 в код, но он дает мне имя и фамилию существующего имени в таблице.

Мой код:

cur_t.execute("""
                SELECT firstname, lastname
                FROM authors;
                """)

for row in cur_t:
    cur_p.execute("""
                     INSERT INTO lib_author (
                                                 created, modified, last_name,
                                                 first_name, country,
                                                 school_id, name)
                    VALUES (current_timestamp, current_timestamp, %s, %s, %s,
                            (SELECT id FROM ed_school WHERE name='My Test School'),
                            (SELECT CONCAT(first_name, ',', last_name) AS name FROM lib_author LIMIT 1)
                            )
                    """, (row['lastname'], row['firstname'], ''))

Как мне вызвать столбец имени и фамилии из исходной БД?

...