Я использую sqlite и хочу посмотреть, могу ли я сопоставить столбец между двумя таблицами, а затем вставить значения из одной таблицы в другую на основе сопоставленных столбцов.
Что-то вроде:
Схема:
employee (ID, name, age, salary)
customer (ID, name, age, tot_spent, last_shopped)
Таблицы:
Сотрудник:
1 | John | 21 | 21000 |
2 | David | 35 | 30000 |
Заказчик:
3 | Larry | 17 | 356 | 4-5-2010 |
4 | Mary | 41 | 70 | 5-7-2012 |
Запрос SQL:
/*find common column names between table "employee" and "customer"*/
WITH common(col) AS
(
SELECT p.name AS columnName
FROM sqlite_master m
LEFT OUTER JOIN pragma_table_info((m.name)) p ON m.name = 'employee' OR m.name = 'customer'
GROUP BY columnName
HAVING COUNT(columnName) > 1
)
/*Insert*/
INSERT INTO customer(common.col)
SELECT common.col
FROM employee;
Это, очевидно, не работает, но это то, чего я пытаюсь достичь. Как мне попытаться реализовать что-то подобное или есть лучшее решение, которого мне не хватает?
Я хотя бы хочу выяснить, могу ли я получить что-то вроде:
-customer-
1 | John | 21 | null | null |
2 | David | 35 | null | null |
3 | Larry | 17 | 356 | 4-5-2010 |
4 | Mary | 41 | 70 | 5-7-2012 |
Без необходимости явно указывать имена столбцов или создавать новую таблицу, но при этом использовать только sqlite.