Можно ли взять значение из строки в одной таблице в моей базе данных MySQL и вставить в другую таблицу в той же базе данных? - PullRequest
3 голосов
/ 19 января 2009

Скажем, у меня есть таблица products со списком продуктов, и одно из полей - price. Эта таблица также имеет поле id. Когда кто-то совершает покупку, я вставляю строку в другую таблицу с именем purchases. Эта таблица также имеет поле с именем price и поле productid, которое сопоставляется с полем таблицы продуктов id. Я хочу знать, смогу ли я узнать цену из таблицы продуктов и вставить ее в таблицу покупок одним SQL-запросом.

Возможно ли это в MySQL?

Спасибо!

Ответы [ 3 ]

10 голосов
/ 19 января 2009

Конечно. В моей обычной практике я просто отправляю цену как часть вставки, но если вам действительно нужно извлечь ее из таблицы продуктов в этот момент, вы можете сделать это с помощью подвыбора, например:

INSERT INTO `purchase`
SET `product_id` = $whatever,
`price` = (
    SELECT `price`
    FROM `product`
    WHERE `id` = $whatever
)
5 голосов
/ 19 января 2009
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
4 голосов
/ 19 января 2009

возможно:

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

для включения текущей скидки:

insert into purchases(purchase_id, product_id, price, discount) 
select 88, product_id, current_price, current_discount from product 
where product_id = 'KEYB'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...