有兩種方式:?關(guān)鍵字where 或嵌入在inner 或left 中:
創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營(yíng)銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。
下面定義3個(gè)表A,B,C,字段分別為A:a,b;B:b,c;C:c,d
正常where 使用語(yǔ)句如下:
select A.a,B.b,C.c from A
inner join B on A.b=B.b
inner join C on C.c=B.c
where A.a=10 or B.b=10 or C.c=10
下面的SQL 嵌入到inner 中的使用方式:
select A.a,B.b,C.c from A
inner join B on A.b=B.b and B.b=10
inner join C on C.c=B.c and C.c=10
你這樣,不要用insert,用update,效果一樣,先把你要插入的字段值賦值為null,并且把你要插入的數(shù)據(jù)與所用到的條件數(shù)據(jù)一起導(dǎo)入一張臨時(shí)表。
比如說(shuō):我要從臨時(shí)表B里往A表里的"插入字段"插入數(shù)據(jù)000,并且條件為
A表的條件1=B表的條件1 ;
A表的條件2=B表的條件2;
那么用update 代替 insert
update A as a,B as b
set a.插入的字段='000'
where a.條件1=b.條件1 and a.條件2=b.條件2
不知道是不是你的意思,如果不是,你說(shuō)清楚點(diǎn)。
如果樓主只是考慮下這樣做,無(wú)妨,有想法。但是這樣做,個(gè)人認(rèn)為勞時(shí)勞力,但結(jié)果還不會(huì)很理想,因?yàn)閿?shù)據(jù)庫(kù)本來(lái)就是對(duì)插入數(shù)據(jù)進(jìn)行存儲(chǔ)和管理,但是現(xiàn)在樓主試圖讓其對(duì)數(shù)據(jù)插入進(jìn)行篩選,貌似越權(quán)了。這些操作應(yīng)該時(shí)數(shù)據(jù)庫(kù)操作的邏輯代碼來(lái)做的,數(shù)據(jù)庫(kù)來(lái)做會(huì)降低開發(fā)效率。
其他數(shù)據(jù)庫(kù)記得可以用check來(lái)做,但是mysql好像check沒(méi)作用
其實(shí)你這個(gè)判斷條件是不對(duì)的,條件只能有一個(gè)。你可以在前面加 如果真 來(lái)判斷,然后再更新記錄,條件只要一個(gè)即可。
例如:
讀字段值(記錄集句柄,“字段名1”,賦值變量1)
讀字段值(記錄集句柄,“字段名2”,賦值變量2)
如果真(賦值變量1="你好" 且 賦值變量2="易語(yǔ)言")
更新記錄(數(shù)據(jù)庫(kù)句柄,"表名","name=1","字段名='"+賦值變量1+"'")
附圖 我以前寫的
如何讓mysql的join的連接查詢中的子表多加個(gè)條件
select * from tbl_a a join tbl_b b on a.col1=b.col1 where b.col2=''; #用where來(lái)加條件就行。