Access 連表查詢語法

2021-05-28 01:37:51 字數 1186 閱讀 7255

目的是想把b表的img欄位內容更新到a表的img欄位上,沒想到sql的語法在access裡竟然不支援!

update [member_inf] set [img] =(select [img] from [img] where [id]=1)

where [id]=1  提示不可更新字段

正確語法:

update a, b

set a.x = b.y, ...

where a.z = b.z

[and a.z='']

我是這樣寫的,測試可以

update [member_inf] as t1,[img] as t2

set t1.[img]=t2.[img]

where

t1.[id]= t2.[id] and t1.[id]=1

今天幫朋友寫乙個小**的程式,資料庫用的access,因為需要將某個類下的子類個數更新到該類的child欄位,於是我寫了這樣乙個查詢

update tabclasss set child=(select count(0) from  tabclass where parentid=2) where id=2

執行之後居然報錯"

操作必須使用乙個可更新的查詢。",剛開始以為是sql寫錯了,但仔細檢查了幾遍也沒有什麼錯啊,拿到access的查詢中執行,還是報同樣的錯誤.想來想去看來只能把sql拆成兩句寫了.於是閒著沒事,翻了一下access的內建函式表,看到幾個有趣的函式,dfirst,dlast,dcount ,dmax,dmin呵呵,access雖不支援子查詢但提供了很多有用的內建函式來彌補,於是上面的問題就迎刃而解了,對應的sql如下

update tabclass set child=dcount('0',' tabclass', 'parentid=2') where id=2

*****2011.2.17日補充**********=

今天又碰到類似的情況,比如有兩個表,乙個是產品分類表 a(id,分類名,分類下產品個數) ,另乙個是產品詳細表 b(id,分類id,產品名),現在想把a表中"分類下產品個數"進行更新,可以使用如下語句

update a  set 

a.分類下產品個數=dcount('0','b', '分類id=' & a.id) 

mysql的連表查詢 MySQL 連表查詢

連表查詢 連表查詢通常分為內連線和外連線。內連線就是使用inner join進行連表查詢 而外連線又分為三種連線方式,分別是左連線 left join 右連線 right join 全連線 full join 下來我們一起來看一下這幾種連線方式的區別及基礎用法。內連線inner join inner...

mysql連表查詢

mysql連表查詢 上下 select from a.mobile user where union all select from b.mobile user where 左右 mysql聯合查詢效率較高,以下例子來說明聯合查詢 內聯 左聯 右聯 全聯 的好處 t1表結構 使用者名稱,密碼 use...

SQL連表查詢

感覺好笨,老大寫過想了一會才想明白。因為資料都是在兩個表中的兩個表中,所以是四個表。應該先把乙個表中的兩個表篩選出來,然後再用union.sql union 操作符 union 操作符用於合併兩個或多個 select 語句的結果集。請注意,union 內部的 select 語句必須擁有相同數量的列。...