Причина ошибки: вы не можете выбрать более одного столбца в подзапросе:
SELECT (SELECT com_post.id, category_id, media_folder_id, gallery_folder_id,
status, important, bgPositioning, published_at, published_by,
com_post.created_at, com_post.modified_at
FROM com_post
INNER JOIN com_post_translation ON com_post.id = com_post_translation.post_id
WHERE com_post_translation.post_id = com_post.id
),
(SELECT title, slug, body,featured_image_file_id
FROM com_post_translation
WHERE com_post.id = com_post_translation.post_id
);
Простое объяснение :
Это приведет к ошибке:
select (select '1', '2');
Это не будет:
select (select '1');
Проверьте демонстрацию
Каков будет способ сделать это без ошибок :
INSERT INTO com_short (category_id --1
, media_folder_id --2
, gallery_folder_id --3
, status --4
, important --5
, bgPositioning --6
, published_at --7
, published_by --8
, created_at --9
, modified_at --10
, title --11
, slug --12
, body --13
, featured_image_file_id) --14
SELECT cpt.category_id --1
, cpt.media_folder_id --2
, cpt.gallery_folder_id --3
, cpt.status --4
, cpt.important --5
, cpt.bgPositioning --6
, cpt.published_at --7
, cpt.published_by --8
, com_post.created_at --9
, com_post.modified_at --10
, cpt.title --11
, cpt.slug --12
, cpt.body --13
, cpt.featured_image_file_id --14
FROM com_post
INNER JOIN com_post_translation cpt ON com_post.id = cpt .post_id
Примечание : Это всего лишь пример, я не могу точно знать из вашего вопроса, что вы хотите сделать ... .
Дополнительная информация :
cpt - псевдоним для таблицы com_post_translation (он делает ваш код «легче» и его легче читать).
При объединении двух таблиц с ключевым словом ON нет необходимости повторять это условие в предложении where.