Вставка и присоединение к MySQL

я видел это

В MySQL соединения работают для операторов INSERT, UPDATE и DELETE. Можно изменить данные более чем в одной таблице при объединении таблиц в инструкции UPDATE или DELETE.

в ответе на вопрос из руководства по сертификации mysql. это правда? вставки с соединениями? пример этого?


person iceangel89    schedule 05.09.2009    source источник


Ответы (3)


Вы можете INSERT... SELECT с mysql, что, вероятно, они и имеют в виду. Например:

INSERT INTO tableNew (col1, col2)
  SELECT tbl1.col1, tbl2.col2
  FROM tbl1 JOIN tbl2
person Marius    schedule 05.09.2009
comment
Рассмотрите возможность использования REPLACE вместо INSERT, он обновляет дубликаты ИЛИ вставляет отсутствующие значения. - person Daniel W.; 11.11.2013
comment
@Marius, как насчет вставки в объединенную таблицу (две таблицы), как мы можем с delete? stackoverflow.com/a/3860308/632951 - person Pacerier; 10.05.2015

Чтобы завершить набор, вот один для DELETE. Это распространенный метод удаления строк вместе с их зависимостями без триггеров.

DELETE users, comments
FROM users JOIN comments ON comments.author=users.id
WHERE users.isspammer=1
person bobince    schedule 05.09.2009

Вы можете сделать это для оператора Update следующим образом:

Update C
Join tableB B on B.id=C.bid
Join tableA A on A.id=B.aid
Set C.status='Active',
A.status='Active'
Where A.id=1 or A.id=2 or A.id=3

проверьте это для справки.

http://www.siusic.com/wphchen/mysql-update-statement-159.html

http://www.keithjbrown.co.uk/vworks/mysql/mysql_p5.php

person Paulraj    schedule 05.09.2009