2009-10-15 3 views
3

У меня есть две таблицы базы данных, пользователи и журналы. Мне нужен код SQL, чтобы сделать что-то вдоль линийMySQL foreach?

foreach(id in users) 
    insert into logs a record with user_id = id; 
endforeach; 

Я мог бы использовать PHP для реализации Еогеаспа, но я полагал, что, вероятно, чистый SQL способ сделать это. Я использую сервер MySQL, если это помогает.

ответ

6

попробовать рисунок, похожий на этой

INSERT INTO logs (blah,blah) 
SELECT foo,bar from Users 

Вы также должны прочитать в то, что называется коррелированные подзапросы, если вам нужен какой-то тип логической связи между двумя утверждениями

+0

Может ли blah, blah быть имена столбцов из таблицы пользователей? то есть они могут быть foo и bar – sjobe

+0

да, они могут, и вы также можете ввести предложение where – keithwarren7

3

Try:

INSERT INTO logs (user_id) SELECT id FROM users; 

Это даст вам пустой рекорд log для каждого идентификатора пользователя.