超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

MySQL中INSERT INTO SELECT的使用

Ccoffee
2012年5月11日 9:19 本文熱度 3484


1. 語法介紹
      有三張表a、b、c,現(xiàn)在需要從表b和表c中分別查幾個字段的值插入到表a中對應的字段。對于這種情況,可以使用如下的語句來實現(xiàn):


INSERT INTO db1_name (field1,field2) SELECT field1,field2 FROM db2_name
 


      上面的語句比較適合兩個表的數(shù)據(jù)互插,如果多個表就不適應了。對于多個表,可以先將需要查詢的字段JOIN起來,然后組成一個視圖后再SELECT FROM就可以了:


INSERT INTO a (field1,field2) SELECT * FROM(SELECT b.f1,c.f2 FROM b JOIN c) AS tb
 


      其中f1是表b的字段,f2是表c的字段,通過JOIN查詢就將分別來自表b和表c的字段進行了組合,然后再通過SELECT嵌套查詢插入到表a中,這樣就滿足了這個場景了,如果需要不止2個表,那么可以多個JOIN的形式來組合字段。

2. 語法錯誤注意
      需要注意的是嵌套查詢部分最后一定要有設置表別名,如下:


SELECT * FROM (SELECT f1,f2 FROM b JOIN c) AS tb


      即最后的AS tb是必須的(tb這個名稱可以隨意?。?,即指定一個別名。每個派生出來的新表都必須指定別名,否則在mysql中會報如下錯誤:


ERROR 1248 (42000): Every derived TABLE must have its own alias
 


      另外,MySQL中INSERT INTO SELECT不能加VALUES,即不能寫成如下形式:


INSERT INTO db1_name(field1,field2) VALUES SELECT field1,field2 FROM db2_name
 


      否則也會報錯:You have an error in your SQL syntax


該文章在 2012/5/11 9:19:14 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結(jié)合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved