MySQL: Mettre à jour toutes les lignes d'une table correspondant aux résultats d'une autre requête
J'ai écrit une requête qui renvoie des lignes associe dans ce cas des Clients et Salespeoeple.
Notez que la requête se joint à plusieurs tables de base de données. Et de noter que pas tous les clients ont un vendeur.
c_id c_name s_id s_name
24 microsoft 1 mike
27 sun 1 mike
42 apple 2 bill
44 oracle 1 mike
47 sgi 1 mike
58 ebay 2 bill
61 paypal 3 joe
65 redhat 1 mike
J'ai aussi une table unique (appelé factures) dans ma base de données qui ressemble à ceci.
i_id c_id c_name s_id s_name
7208 22 toyota NULL NULL
7209 23 ford NULL NULL
7210 27 sun NULL NULL
7211 42 apple NULL NULL
7212 12 nissan NULL NULL
7213 15 gm NULL NULL
7214 61 paypal NULL NULL
Comment puis-je utiliser la mise à JOUR de MySQL pour faire mes factures table ressembler le tableau ci-dessous?
i_id c_id c_name s_id s_name
7208 22 toyota NULL NULL
7209 23 ford NULL NULL
7210 27 sun 1 mike
7211 42 apple 2 bill
7212 12 nissan NULL NULL
7213 15 gm NULL NULL
7214 61 paypal 3 joe
C'est-à-dire, comment puis-je mettre à jour ma table de facture pour inclure la salesperson_id et salesperson_name, où la relation qui existe?
Noter que lorsqu'un Client/Vendeur relation existe, toutes les factures pour que le client doit avoir le vendeur associés avec elle, si il y a un vendeur pour cette clientèle.
Merci de bien vouloir 🙂
source d'informationauteur Tommy O'Dell
Vous devez vous connecter pour publier un commentaire.
À l'aide de sous-requêtes
Plus largement appuyé l'option
À L'Aide De Jointures
En supposant que votre premier tableau est nommé
customers
et les clients sans un vendeur ont uns_id
deNULL
J'proposer des tests en cours de développement ou de l'exécution d'un
SELECT
requête à l'aide de laJOIN
au-dessus du premier pour s'assurer que les résultats.Vous pouvez créer une vue pour faire de votre
UPDATE
déclaration simple. La vue doit contenir votre requête (dans votre cas, la requête qui associe les clients et les commerciaux). Ensuite, mettez à jour votre table (invoices
dans votre cas), comme ceci: