Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
sql:mysql:update-someself [2016/11/02 12:14] – [Пример 1: (INNER JOIN)] mirocowsql:mysql:update-someself [2016/12/05 20:41] (текущий) – [MySQL - UPDATE query based on SELECT Query / Обновление самого себя] mirocow
Строка 1: Строка 1:
 {{tag>mysql sql insert update select}} {{tag>mysql sql insert update select}}
  
-====== MySQL - UPDATE query based on SELECT Query ======+====== MySQL - UPDATE query based on SELECT Query / Обновление самого себя ====== 
 + 
 +При возникновении ошибки 
 + 
 +<note important>Table is specified twice, both as a target for 'UPDATE' and as a separate source for data</note>
  
 How can i update itself in mysql/mariadb How can i update itself in mysql/mariadb
  
-===== Пример 1: (INNER JOIN) =====+===== Пример 1: (IN) =====
  
-<del><code sql> +<code sql> 
-UPDATE +UPDATE tbl_category_mark_model_form tbl_1 SET tbl_1.token=NULL WHERE tbl_1.id NOT 
-    Table_A +  SELECT * FROM ( 
-SET +    SELECT id FROM tbl_category_mark_model_form 
-    Table_A.token = CONCAT_WS(':', Table_B.category_id, Table_B.form_id, Table_B.mark_id, Table_B.model_id) +  ) t 
-FROM +)
-    tbl_category_mark_model_form Table_A +</code>
-INNER JOIN +
-    tbl_category_mark_model_form Table_B +
-ON +
-    Table_A.id = Table_B.id +
-+
-</code></del>+
  
-===== Пример 2: (SUB QUERY) =====+===== Пример 2: (NOT IN) ===== 
 + 
 +<code sql> 
 +UPDATE tbl_category_mark_model_form tbl_1 SET tbl_1.token=NULL WHERE tbl_1.id NOT IN ( 
 +  SELECT * FROM ( 
 +    SELECT id FROM tbl_category_mark_model_form 
 +  ) t 
 +); 
 +</code> 
 +===== Пример 3: (SUB QUERY) =====
  
 <code sql> <code sql>
Строка 43: Строка 50:
 </code> </code>
  
-===== Пример 3: () =====+===== Пример 4: (INNER JOIN) =====
  
 <code sql> <code sql>