寫sql的功夫低啊,得慢慢提高才行
今天看到一個,然後嘗試一下
表連線後做update
mysql> select * from b;
+---------------------+------+------+
| Time | id | test |
+---------------------+------+------+
| 2007-08-11 21:15:07 | 1 | NULL |
| 2007-08-11 21:15:09 | 2 | NULL |
| 2007-08-11 21:15:11 | 3 | NULL |
| 2007-08-13 19:49:32 | 4 | NULL |
| 2007-08-13 19:55:32 | NULL | NULL |
+---------------------+------+------+
5 rows in set (0.00 sec)
mysql> select * from a;
+---+------+------+
| a | c | id |
+---+------+------+
| 1 | 2 | 3 |
| 3 | 4 | 4 |
+---+------+------+
2 rows in set (0.00 sec)
mysql> update b inner join ( select * from a ) using (id) set test = 1;
ERROR 1248 (42000): Every derived table must have its own alias
mysql> update b inner join ( select * from a ) as chosen using (id) set test = 1;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> select * from b;
+---------------------+------+------+
| Time | id | test |
+---------------------+------+------+
| 2007-08-11 21:15:07 | 1 | NULL |
| 2007-08-11 21:15:09 | 2 | NULL |
| 2007-11-15 11:49:39 | 3 | 1 |
| 2007-11-15 11:49:39 | 4 | 1 |
| 2007-08-13 19:55:32 | NULL | NULL |
+---------------------+------+------+
5 rows in set (0.00 sec)
直接像postgresql好像也可以,記得oracle不行的
mysql> select * from b;
+---------------------+------+------+
| Time | id | test |
+---------------------+------+------+
| 2007-08-11 21:15:07 | 1 | NULL |
| 2007-08-11 21:15:09 | 2 | NULL |
| 2007-11-15 11:49:39 | 3 | 1 |
| 2007-11-15 11:49:39 | 4 | 1 |
| 2007-08-13 19:55:32 | NULL | NULL |
+---------------------+------+------+
5 rows in set (0.00 sec)
mysql> update b,a set test = 0 where b.id = a.c;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> select * from b;
+---------------------+------+------+
| Time | id | test |
+---------------------+------+------+
| 2007-08-11 21:15:07 | 1 | NULL |
| 2007-11-15 11:54:19 | 2 | 0 |
| 2007-11-15 11:49:39 | 3 | 1 |
| 2007-11-15 11:54:19 | 4 | 0 |
| 2007-08-13 19:55:32 | NULL | NULL |
+---------------------+------+------+
5 rows in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/82392/viewspace-144727/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 慢慢寫 十二重計數法
- MySql定位執行效率較低的SQL語句MySql
- 根據SQL Id獲得SQL語句的執行計劃SQL
- 在Windows低許可權下利用服務進行提權Windows
- 慢慢來
- mysql 索引巧用,SQL語句寫得忒野了MySql索引
- 另我無語啊,SQL執行計劃走錯SQL
- SQL Sever提權SQL
- 得物直播低延遲探索 | 得物技術
- 如何寫好 5000 行的 SQL 程式碼SQL
- 如何寫好5000行的SQL程式碼SQL
- 獲得目標SQL語句執行計劃的方法SQL
- SQL常見提問~SQL
- sql最佳化:使用儲存提綱穩定sql執行計劃SQL
- 【PL/SQL開發】-----詭異啊SQL
- [提問交流]新手求助啊get_document_model方法在哪裡定義的?
- 論文提綱寫作怎麼寫
- 一個寫xml的問題,高手幫忙啊!XML
- 自己動手寫SQL執行引擎SQL
- 李天平: 技術以外的功夫
- 決定一個SQL執行效率的是執行計劃, 而不是SQL的寫法SQL
- 都說很簡單的Hogan,還是得看案例才能懂啊HOG
- vivo遊戲中心低程式碼平臺的提效秘訣遊戲
- 通過等待事件來獲得查詢SQl的執行計劃事件SQL
- Python正在慢慢褪色Python
- 系統慢慢變壞的邏輯
- 666行的象棋程式下得不錯啊
- [提問交流]外掛商店 ( 你提需求 , 我寫程式碼 )
- Sa提權Sql語句大全SQL
- 【AWR】通過AWR報告中記錄的 SQL Id獲得SQL語句的執行計劃SQL
- oracle 9i 獲取sql執行計劃(書寫長的sql)OracleSQL
- [提問交流]請教[段落]是指的什麼?這個該如何應用啊
- 彭老師經常提的Eclipes中"斷點跟蹤"到底在哪裡啊斷點
- 使用dbms_xplan包來獲得sql語句的執行計劃SQL
- 李天平: 技術以外的功夫 薦
- 慢慢細談Android 面試的細節Android面試
- 你得會寫程式碼。。。
- sql devloper 用法的和SQL 編寫SQLdev