2011-02-08 1 views
1
insert into tblcustomermachine 
(
select * from 
((select vch_CustomerID from tblcustomer where tblcustomer.vch_CustomerID='Cust00001') 
union all 
(select Rate from tblmachine)) as t); 

Эта таблица содержит 18 столбцов, и этот результат также содержит 18 строк, но показывает: «Количество столбцов не соответствует количеству значений в строке 1». Зачем?Что случилось с этим запросом на вставку mysql?

+0

resultset также содержит 18 строк. Он должен содержать 18 столбцов в результирующем наборе –

ответ

1

Это выглядит как ваш стол tblcustomermachine имеет более 1 колонку.

Как Simone ответил, обновить вставку INSERT INTO tblcustomermachine(col_1) SELECT ...

Вы можете пропустить имена столбцов во INSERT, однако SELECT потребности возвращать одинаковое количество столбцов, которая содержит таблицу.

0

AFAIK, вы должны объявить имя поля:

insert into tblcustomermachine (col_1, col_2, col_3, ... col_18) (
    select t.field1, t.field2, t.field3, ... t.field18 from (
     (select vch_CustomerID from tblcustomer where tblcustomer.vch_CustomerID='Cust00001') 
     union all (select Rate from tblmachine)) 
    as t 
    ); 
+0

no cols не является стабильным. Он может меняться – Even