INSERT INTO `database_name`.`table_3` (
`value_id` ,
`entity_type_id` ,
`attribute_id` ,
`store_id` ,
`entity_id` ,
`value`
)
VALUES (
NULL , '4', '85', '0',
SELECT entity_id FROM table_3 WHERE table_3.value = 'someTextThatIKnow',
SELECT value FROM table_1 WHERE entity_id = SELECT entity_id FROM table_3 WHERE table_3.value = 'someTextThatIKnow'
);
这就是我的代码。所以,在table_3
我有一个插入的行,其值为entity_id
和value
列。现在,在同一个表我想在同一列的以下插入:使用SELECT语句作为插入的值
- 在
entity_id
- >相同的值从已经插入行中value
- - >的某行中
table_1
值(其还具有* entity_id *和值列),其中在entity_id
下的值与table_3
中的行相同。
我希望你能理解我的想法是什么。
现在,我得到错误#1064
(语法错误)。我似乎可以找到任何语法错误。我也尝试围绕' '
的表名称。我怎样才能构造这个查询?
如果你不得不使用'()',但下面给出的答案要好得多。 – malta
为了确保我明白了,您正试图向table_3添加更多全新的行,而不是更新现有行以将来自table_1的缺失数据放入列中,对不对? –
除了下面的答案之外,请注意,没有要求用引号括起来的整数。这样做会*降低性能! – Strawberry