日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
AQL數(shù)據(jù)庫(kù)中notin操作的使用方法(aql數(shù)據(jù)庫(kù)中notin)

AQL是一種基于ArangoDB數(shù)據(jù)庫(kù)的查詢語(yǔ)言,它的語(yǔ)法特點(diǎn)類似于SQL,具有良好的可讀性和可維護(hù)性。其中not in操作是AQL語(yǔ)言中常用的一種操作符,用于判斷一個(gè)值是否不在另一個(gè)中。本文將介紹not in操作的語(yǔ)法和使用方法,以便讀者更好地掌握AQL語(yǔ)言的技能。

一、not in操作的語(yǔ)法

在AQL語(yǔ)言中,not in操作的語(yǔ)法格式如下:

“`

expression NOT IN (setExpression)

“`

其中,expression表示需要進(jìn)行判斷的值,setExpression表示用于判斷的。這個(gè)可以是一個(gè)數(shù)組,也可以是一個(gè)subquery查詢結(jié)果。

二、not in操作的使用方法

not in操作的本質(zhì)是一個(gè)布爾運(yùn)算,它返回一個(gè)布爾值,表示expression是否不在setExpression中。在實(shí)際應(yīng)用中,not in操作有多種用法,主要有以下兩種:

1、判斷值是否不在數(shù)組中

判斷一個(gè)值是否存在于一個(gè)數(shù)組中,可以使用not in操作符。例如,以下AQL語(yǔ)句可以判斷”apple”是否不在fruits數(shù)組中:

“`

FOR fruit IN fruits

FILTER “apple” NOT IN fruit

RETURN fruit

“`

其中,fruits是一個(gè)數(shù)組,fruit表示數(shù)組中的每一個(gè)元素,如果結(jié)果集包含的元素中不包含”apple”,那么該元素就會(huì)被返還。相反,如果結(jié)果集中包含”apple”,那么該元素就不會(huì)被返回。

2、判斷值是否不在subquery子查詢的結(jié)果中

在AQL語(yǔ)言中,not in操作也可以用于子查詢中,用于判斷一個(gè)值是否不在subquery子查詢的結(jié)果中。例如,以下AQL語(yǔ)句可以判斷“user1”是否不是book表中的作者:

“`

FOR b IN book

FILTER b.author NOT IN (

FOR u IN user

FILTER u.name == “user1”

RETURN u.following

)

RETURN b

“`

其中,book和user分別為book表和user表。這個(gè)AQL語(yǔ)句會(huì)先在user表中查詢名為”user1″的記錄,然后查詢這個(gè)用戶關(guān)注的所有用戶,返回這個(gè)作為not in操作中的setExpression。它會(huì)在book表中查詢出所有不屬于這個(gè)作者的書籍,并將它們作為結(jié)果集返回。

三、not in操作的實(shí)際應(yīng)用

not in操作在實(shí)際應(yīng)用中有廣泛的場(chǎng)景,例如:

1、過(guò)濾掉排除中的數(shù)據(jù)

not in操作可以用于過(guò)濾掉排除中的數(shù)據(jù),例如在查詢出某個(gè)用戶的好友列表時(shí),如果需要排除掉某些用戶,可以使用not in操作。

2、根據(jù)關(guān)聯(lián)表的數(shù)據(jù)推算出數(shù)據(jù)缺失的情況

not in操作還可以根據(jù)關(guān)聯(lián)表的數(shù)據(jù),推算出當(dāng)前數(shù)據(jù)是否缺失,例如在查詢出用戶的評(píng)價(jià)信息時(shí),如果評(píng)價(jià)表中缺失了某些用戶的評(píng)價(jià)信息,就可以使用not in操作來(lái)判斷。此時(shí),setExpression就等于用戶表,expression就等于評(píng)價(jià)表中的用戶ID,通過(guò)對(duì)比兩個(gè)之間的差異,就可以得出缺失數(shù)據(jù)的信息。

以上就是not in操作在AQL語(yǔ)言中的使用方法和實(shí)際應(yīng)用場(chǎng)景,希望本文能夠幫助讀者更好地掌握AQL語(yǔ)言的技能。

相關(guān)問(wèn)題拓展閱讀:

  • 存儲(chǔ)過(guò)程SQL語(yǔ)句 not in問(wèn)題
  • sql not in問(wèn)題

存儲(chǔ)過(guò)程SQL語(yǔ)句 not in問(wèn)題

樓上的不排除投機(jī)取巧(褒義)呵呵、

如果user真的有存在的房號(hào),人不在房間的問(wèn)題,不與username比較是不是也顯示不出來(lái)了呢。呵呵!

select roomid,’房間號(hào)不存在’

from

where roomid not in (select distinct roomid from room )

union all

select roomid,’此人不在此房間中’

from

where username not in (select a.username from room a, b where a.roomid = b.roomid and a.username = b.username)

and roomid not in (select roomid

from

where roomid not in (select distinct roomid from room ))

這個(gè)就OK了。

下面操作必須執(zhí)行,要篩選人和房間的匹配哦,雖然辦法垃圾,只是在外層查詢篩選不存在的房間,不過(guò)也是一種辦法哦。呵呵!~

第二問(wèn)題我不是很明白你的意思。代替值為空可以用ISNULL。

select roomid,’房間號(hào)不存在‘

from user

where roomid not in (select distinct roomid from room )

union all

select username,’此人不在此房間中’

from user

where not exists (select a.username from room a,user b where a.roomid = b.roomid and a.username = b.username)

這樣應(yīng)該行了

select roomid

,status = isnull((select 1 from room where user.roomid = roomid)

,’房間號(hào)不存在‘)

from user

union all

……

sql not in問(wèn)題

這個(gè)效率肯定是很慢的,因?yàn)椴涣w擾游單單是not in效率較低,group by效率也高不到哪兒去!

這種情況可以看出是由于設(shè)計(jì)表時(shí)進(jìn)行了錯(cuò)誤的分析,導(dǎo)致出現(xiàn)了大量的冗余。

id->地址.id->地區(qū),地址->地區(qū)

這是函數(shù)依賴關(guān)系,也就李正是說(shuō)如果id是主鍵的情況下,存在者有屬性對(duì)非主屬性的兄銷依賴,這張表不符合2NF,所以會(huì)出現(xiàn)大量的冗余,而這個(gè)才是效率低下的真正原因!也就是說(shuō)你的語(yǔ)句上的只是效率問(wèn)題,而數(shù)據(jù)庫(kù)才是執(zhí)行慢的真正原因!如果合理的數(shù)據(jù)庫(kù),存在1K左右的記錄,就算你還使用group by與not in也不會(huì)等到10分鐘的!

NOT IN速度當(dāng)然很慢,因?yàn)檫@樣會(huì)存在兩個(gè)全表檢索的情況,使用NOT EXISTS會(huì)快很多。

delete from t_b where exists (select 1 from t_b a where isnull(a.cost,0) > isnull(t_b.cost,0) and a.cost t_b.cost)

DELETE FROM CIDZ WHERE EXISTS (SELECT 1 FROM CIDZ A WHERE A.ID >模則 CIDZ.ID)

這個(gè)旦咐棚刪除之后,會(huì)只剩下這個(gè)表中ID更大的一行,沒有別的連接條件了么?如果這么已刪除,表中只剩下一行了,我覺得你的意思是不是只留下每個(gè)地址分組后ID更大的簡(jiǎn)汪一行?。?/p>

關(guān)于aql數(shù)據(jù)庫(kù)中not in的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。


分享文章:AQL數(shù)據(jù)庫(kù)中notin操作的使用方法(aql數(shù)據(jù)庫(kù)中notin)
文章分享:http://www.dlmjj.cn/article/coeehds.html