что не так с этим запросом вставки MySQL? - PullRequest
1 голос
/ 08 февраля 2011
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».почему?

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Похоже, ваша таблица tblcustomermachine содержит более 1 столбца.

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

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

0 голосов
/ 08 февраля 2011

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
   );
...