0

任何人都可以请帮助..

SELECT 自己的作品

使用 VALUES 单独插入也可以。

笔记:

 products_similar has 2 columns VARCHARS
 get_cheaper() - stored routine returning VARCHAR

我从来没有遇到过 INSERT INTO ... SELECT 的问题。

但是当我将它们结合起来时,会出现以下错误:

SQL 查询:文档

INSERT INTO `products_similar` (
`product_sku` ,
`better_priced_sku`
)
SELECT p.product_sku sku, get_cheaper(
p.product_sku
)cheaper_sku
FROM jos_vm_product p;

MySQL 说:文档

#1054 - “字段列表”中的未知列“product_sku”

当我注释掉 get_cheaper(p.product_sku) Cheap_sku 时,它可以工作:

TRUNCATE TABLE `products_similar` ;# MySQL returned an empty result set (i.e. zero rows).
INSERT INTO `products_similar` (
`product_sku` ,
`better_priced_sku`
)
SELECT p.product_sku sku, p.product_sku sku# , get_cheaper(p.product_sku) cheaper_sku

FROM jos_vm_product p;# Affected rows: 43882
4

3 回答 3

1

大概这是由于重命名:SELECT p.product_sku sku. 需要列名 product_sku。

于 2009-08-05T15:09:12.200 回答
0

这是mysql手册中这个问题的答案:

以下列定义展示了每种可能性:

自动初始化和自动更新: ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

仅自动初始化:ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP

仅自动更新:ts TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP

两者都不:ts TIMESTAMP DEFAULT 0

您对最后一个感兴趣 - 如果您将时间戳的默认值设置为 0,它将不会自动更新

于 2011-10-04T19:00:34.797 回答
0

您的这部分查询是否自行工作?

SELECT p.product_sku sku, get_cheaper(p.product_sku)cheaper_sku
FROM jos_vm_product p;

编辑:

既然这样有效,请尝试从中创建一个视图。

CREATE VIEW products_similar 
AS SELECT p.product_sku sku, get_cheaper(p.product_sku)cheaper_sku
FROM jos_vm_product p;

您将能够像普通表一样查询视图

于 2009-08-05T16:15:13.557 回答