art_haacki
@art_haacki
haacki47

SQL как совместить INSERT INTO и SELECT?

У меня есть такой SQL запрос.
SELECT url_img, object_id FROM images 
  INNER JOIN products ON images.object_id = products.id 
  WHERE images.object = "product"


Из таблицы images, выбираются все поля по заданным условиям.
Но задача в том что бы закидывать этот полученный результат в таблицу products в поле image_url

INSERT INTO products (image_url)
SELECT url_img, object_id FROM images 
  INNER JOIN products ON images.object_id = products.id 
  WHERE images.object = "product"


UPDATE products
SET products.image_url = image.url_img
SELECT url_img, object_id FROM images 
  INNER JOIN products ON images.object_id = products.id 
  WHERE images.object = "product"


Но ничего не получается MySQL пишет такое:
Column count doesn't match value count at row 1
  • Вопрос задан
  • 1022 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
UPDATE `products`
  LEFT JOIN `images` ON `images`.`object_id` = `products`.`id`
  SET `products`.`images` = `products`.`url`
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mletov
INSERT INTO products (image_url)
SELECT  url_img
FROM
(
    SELECT url_img, object_id FROM images 
    INNER JOIN products ON images.object_id = products.id 
    WHERE images.object = "product"
) AS t1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы