2010-03-11 11 views
0

J'ai quelques utilisateurs configurés dans une table MySQL avec différentes variables. J'essaie de comprendre quelle serait la meilleure façon de le faire. Fondamentalement, je veux attribuer à tous mes utilisateurs inscrits et actifs des offres qui sont stockées dans une autre table.Comment interroger une table et ajouter des lignes à une autre en utilisant cette première requête? MySQL

Donc, pour la table « utilisateurs » J'ai couru cette requête:

SELECT * 
FROM `users` 
WHERE `active` = 1 
    AND `admin` = 0 
ORDER BY `users`.`id` ASC 

qui montrera tous les utilisateurs actifs qui ne sont pas administrateurs.

Maintenant, je voudrais donner à chacun de ces utilisateurs qui sont identifiés par le champ "ID" dans une autre table. Donc, dans la table "bids", j'aurais besoin d'ajouter une nouvelle ligne pour chacun de ces utilisateurs avec toutes les mêmes valeurs à l'exception du champ "user_id" qui correspondra essentiellement au champ "id" de la table "users"

Quelle serait la meilleure approche pour cela. Il y a environ 6.000 utilisateurs à venir dans la première requête.

+0

Vous violez 3ème forme normale en raison de données redondantes. Vouliez-vous faire cela en php? S'il vous plaît fournir le code que vous avez fait pour que nous puissions éditer. –

+0

Ce n'était pas fait avec du code. Juste dans phpmyadmin. – Nickelbids

Répondre

1

Pouvez-vous faire quelque chose comme ça?

INSERT INTO bids 
    (col1, col12, col3) 
SELECT 
    users.col1, users.col2, users.col3 FROM users 
WHERE users.active = 1 and users.admin = 0 
ORDER BY users.id ASC 
+0

Est-ce que cela copierait essentiellement les données de la table des utilisateurs et les insérerait dans la table des enchères? Si oui, ce n'est pas ce que je cherchais malheureusement. Je veux insérer une ligne dans la table des offres avec seulement le champ "user_id" correspondant à celui du champ "id" dans la table des utilisateurs. Toutes les autres colonnes, je voudrais insérer d'autres données. – Nickelbids

+0

Il ne va pas copier sur rien, insérer uniquement de nouvelles lignes dans la table des enchères –

+0

D'où vient cette "autres données"? –

0

Généralement pas une bonne idée de dupliquer des données comme cela, mais il y a aussi:

create table bids as select <fields> from users 
Questions connexes