Помогите переделать запрос SQL

QuZ

Постоялец
Регистрация
18 Июл 2009
Сообщения
86
Реакции
50
Добрый день.
Имеется SQL

Код:
INSERT INTO t3 (old, new)
SELECT CASE flag WHEN 1 THEN COLUMN_NAME ELSE '' END,
       CASE flag WHEN 2 THEN COLUMN_NAME ELSE '' END
FROM ( SELECT COLUMN_NAME, SUM(CASE TABLE_NAME
                               WHEN 't1' THEN 1
                               WHEN 't2' THEN 2
                               END) flag
       FROM INFORMATION_SCHEMA.COLUMNS
       WHERE TABLE_SCHEMA = 'my_database'
         AND TABLE_NAME IN ('t1', 't2')
       GROUP BY COLUMN_NAME
       HAVING flag < 3
     ) dummy

Помогите пожалуйста на основе него сделать вставку в t3 в колонку value - название колонки, какой не хватает в одной из таблиц и в колонку status - 1 или 2 - в зависимости от того, в какой таблице найдено.

Спасибо.
 
Для составления запроса структура таблиц 't1' и 't2' должна быть известна. Что значит "название колонки, какой не хватает в одной из таблиц"?
 
Код:
INSERT INTO t3 (name, table)
select  COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS t1 where COLUMN_NAME not in
(SELECT t1.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS t1
JOIN INFORMATION_SCHEMA.COLUMNS t2
ON t1.COLUMN_NAME = t2.COLUMN_NAME
AND t2.TABLE_NAME = 'table2'
AND t2.TABLE_SCHEMA = database()
WHERE t1.TABLE_NAME = 'table1'
AND t1.TABLE_SCHEMA = database() ),1 ;


и так же для второй
 
Назад
Сверху