2013-04-06 2 views
1

Мне нужно отправить таблицу в несколько файлов на основе значения столбца в другой таблице.Экспорт таблицы в csv в несколько файлов на основе столбца из другой таблицы

Я также хочу просто использовать строку mysql commmand, а не через любой язык сценариев. Является ли это возможным?

Например:

Таблица А имеет

(ID, Name, Stuff), Name уникальный

Таблица B имеет

(ID, Name, Start, End)

Я хочу, чтобы сбросить все строки в B, чьи Name существует A, каждый в свой файл на основе Name.

В SQL, примерно так:

SELECT * 
FROM B 
WHERE Name = 'brad' (exists in A) 
INTO OUTFILE '/home/csv/brad.csv' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 

для каждого и всякого имени, которое существует в A. кроме

ответ

0

Чтобы убедиться Name существует в таблице A просто присоединиться A и B по имени:

SELECT * 
FROM B 
INNER JOIN A ON B.Name = A.Name 
WHERE Name = 'brad' 

Что касается меняющегося имени OUTFILE, я не думаю, что есть способ сделать это с вами t программирование/скриптинг. Вы можете сделать это с помощью процедуры MySQL, используя EXECUTE; есть пример с голой костью here, который вы можете адаптировать. Общий подход заключался бы в создании курсора различных имен, затем сканировании и построении/выполнении SQL (включая значение OUTFILE) для каждого имени.

Смежные вопросы