2009-10-15 6 views
3

J'ai deux tables de base de données, les utilisateurs et les journaux. J'ai besoin du code SQL pour faire quelque chose le long des lignes deMySQL foreach?

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

je pourrais utiliser php pour mettre en œuvre le foreach, mais je me suis dit il y a probablement une façon pure SQL de faire cela. Je cours un serveur de MySQL si cela aide.

Répondre

6

essayer un modèle similaire à ce

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

Vous devriez également lire dans ce qu'on appelle les sous-requêtes Corrélés si vous avez besoin un certain type de lien logique entre les deux déclarations

+0

Les noms de colonne peuvent-ils être blah, blah à partir de la table des utilisateurs? c'est-à-dire qu'ils peuvent être foo et bar – sjobe

+0

oui ils peuvent, et vous pouvez également introduire une clause where – keithwarren7

3

Essayez:

INSERT INTO logs (user_id) SELECT id FROM users; 

Cela vous donnera un enregistrement vide log pour chaque ID utilisateur.