[英]MySQL - Insert into a table by querying product id from another table
我有兩張桌子。
這是結構
CREATE TABLE IF NOT EXISTS `CATALOG_CATEGORY_PRODUCT`
(
`CATEGORY_ID` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Category ID',
`PRODUCT_ID` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Product ID',
`POSITION` INT(11) NOT NULL DEFAULT '0' COMMENT 'Position',
PRIMARY KEY (`CATEGORY_ID`, `PRODUCT_ID`),
KEY `IDX_CATALOG_CATEGORY_PRODUCT_PRODUCT_ID` (`PRODUCT_ID`)
)
ENGINE=INNODB
DEFAULT CHARSET=UTF8
COMMENT='Catalog Product To Category Linkage Table';
CREATE TABLE IF NOT EXISTS `CATALOG_PRODUCT_ENTITY_TIER_PRICE`
(
`VALUE_ID` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'Value ID',
`ENTITY_ID` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT
'Entity ID',
`ALL_GROUPS` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '1' COMMENT
'Is Applicable To All Customer Groups',
`CUSTOMER_GROUP_ID` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT
'Customer Group ID',
`QTY` DECIMAL(12, 4) NOT NULL DEFAULT '1.0000' COMMENT 'QTY',
`VALUE` DECIMAL(12, 4) NOT NULL DEFAULT '0.0000' COMMENT
'Value',
`WEBSITE_ID` SMALLINT(5) UNSIGNED NOT NULL COMMENT 'Website ID',
PRIMARY KEY (`VALUE_ID`)
)
ENGINE=INNODB
DEFAULT CHARSET=UTF8
COMMENT='Catalog Product Tier Price Attribute Backend Table';
所以我有大約500種產品。
我從catalog_category_product
查詢了category_id = 37
的產品ID
這是查詢。
SELECT PRODUCT_ID
FROM `CATALOG_CATEGORY_PRODUCT`
WHERE CATEGORY_ID = 37
使用該結果我想將價格插入等級價格表。
INSERT INTO `CATALOG_PRODUCT_ENTITY_TIER_PRICE`
(`ENTITY_ID`,
`ALL_GROUPS`,
`CUSTOMER_GROUP_ID`,
`QTY`,
`VALUE`,
`WEBSITE_ID`)
VALUES (209,
1,
0,
60.0000,
10.0000,
0);
這里catalog_product_entity_tier_price.entity_id = catalog_category_product.product_id
所以209是catalog_category_product
查詢的第一個結果。 我想對所有結果做同樣的事情。
有人可以用mysql查詢來幫我完成嗎?
嘗試INSERT INTO ... SELECT ...
像這樣:
INSERT INTO `catalog_product_entity_tier_price` (`entity_id`,
`all_groups`,
`customer_group_id`,
`qty`,
`value`,
`website_id`)
SELECT product_id, 1, 0, 60.0000, 10.0000, 0
FROM `catalog_category_product`
WHERE category_id =37
您可以像這樣執行INSERT INTO ... SELECT
語句:
INSERT INTO `catalog_product_entity_tier_price` (`entity_id`, `all_groups`, `customer_group_id`, `qty`, `value`, `website_id`)
SELECT product_id, 1, 0, 60.0000, 10.0000, 0
FROM `catalog_category_product`
WHERE category_id =37
這將為SELECT
查詢的每個結果插入一行。 所有其他列在所有插入的行中都是相同的。
如果您想要其他列中的其他值,則必須以某種方式指定它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.