2009-01-19 3 views
3

Donc disons que j'ai un tableau products avec une liste de produits, et l'un des champs est price. Cette table a également un champ id. Quand quelqu'un fait un achat, j'insère une ligne dans une autre table appelée purchases. Cette table comporte également un champ appelé price et un champ productid qui correspond au champ de la table de produits id. Je veux savoir si je peux obtenir le prix de ma table de produits et l'insérer dans la table d'achats tout dans une requête SQL.Est-il possible de prendre une valeur d'une ligne dans une table de ma base de données MySQL et de l'insérer dans une autre table de la même base de données?

Est-ce possible en MySQL?

Merci!

Répondre

10

Bien sûr. Dans ma pratique habituelle, je n'envoie que le prix dans l'encart, mais si vous avez vraiment besoin de l'extraire de la table des produits, vous pouvez le faire avec une sous-sélection, comme:

INSERT INTO `purchase` 
SET `product_id` = $whatever, 
`price` = (
    SELECT `price` 
    FROM `product` 
    WHERE `id` = $whatever 
) 
4

possible:

insert into purchases(purchase_id, product_id, price) 
select 88, product_id, current_price from product 
where product_id = 'KEYB' 

pour inclure la remise actuelle:

insert into purchases(purchase_id, product_id, price, discount) 
select 88, product_id, current_price, current_discount from product 
where product_id = 'KEYB' 
5
INSERT INTO purchases (
    price 
    ,productid 
    ,add your other columns here 
) 
SELECT price 
    ,id 
    ,add your other columns here 
FROM products 
WHERE add your selection criteria here 
Questions connexes