與SQL一樣,Neo4j CQL有兩個(gè)子句,將兩個(gè)不同的結(jié)果合并成一組結(jié)果
它將兩組結(jié)果中的公共行組合并返回到一組結(jié)果中。 它不從兩個(gè)節(jié)點(diǎn)返回重復(fù)的行。
結(jié)果列類型和來自兩組結(jié)果的名稱必須匹配,這意味著列名稱應(yīng)該相同,列的數(shù)據(jù)類型應(yīng)該相同。
<MATCH Command1> UNION <MATCH Command2>
語(yǔ)法說明:
S.No. | 語(yǔ)法元素 | 描述 |
---|---|---|
1。 | <MATCH COMMAND1> | 它是CQL MATCH命令,由UNION子句使用。 |
2。 | <MATCH Command2> | 它是CQL MATCH命令兩個(gè)由UNION子句使用。 |
3。 | UNION | 它是UNION子句的Neo4j CQL關(guān)鍵字。 |
注意 -
如果這兩個(gè)查詢不返回相同的列名和數(shù)據(jù)類型,那么它拋出一個(gè)錯(cuò)誤。
在本章中,我們將采取一個(gè)銀行應(yīng)用程序的節(jié)點(diǎn):信用卡式和借記卡解釋UNION子句
第1步 -打開Neo4j的數(shù)據(jù)瀏覽器
第2步 -在數(shù)據(jù)瀏覽器的美元提示符處鍵入以下命令。
MATCH (cc:CreditCard) RETURN cc
點(diǎn)擊“下載CSV”來查看結(jié)果
第1步 -打開Neo4j的數(shù)據(jù)瀏覽器
第2步 -在數(shù)據(jù)瀏覽器的美元提示符處鍵入以下命令。
MATCH (dc:DebitCard) RETURN dc
點(diǎn)擊“下載CSV”來查看結(jié)果
我們將利用這些數(shù)據(jù)來解釋的Neo4j CQL UNION與實(shí)例的使用
本例說明:如果UNION子句的這兩個(gè)查詢確實(shí)有相同的名稱或相同的數(shù)據(jù)類型及其列會(huì)發(fā)生什么。
第1步 -打開Neo4j的數(shù)據(jù)瀏覽器
第2步 -在數(shù)據(jù)瀏覽器的美元提示符處鍵入以下命令。
MATCH (cc:CreditCard) RETURN cc.id,cc.number UNION MATCH (dc:DebitCard) RETURN dc.id,dc.number
第3步 -點(diǎn)擊執(zhí)行按鈕,看到成功消息數(shù)據(jù)瀏覽器。
這表明,這兩個(gè)查詢應(yīng)具有相同的列名。
首先查詢有:cc.id,cc.number。
第二個(gè)查詢有:dc.id,dc.number。
這里既有信用卡式和借記卡具有相同的屬性名:身份證和號(hào)碼,但他們有不同的節(jié)點(diǎn)名稱前綴。這就是為什么UNION命令顯示此錯(cuò)誤消息。為了避免這種錯(cuò)誤,Neo4j的CQL提供“AS”子句。
像CQL,CQL Neo4j的“AS”子句用于給一些別名。
此示例演示如何使用UNION子句從兩個(gè)節(jié)點(diǎn)檢索數(shù)據(jù)。
第1步 -打開Neo4j的數(shù)據(jù)瀏覽器
第2步 -在數(shù)據(jù)瀏覽器的美元提示符處鍵入以下命令,然后單擊執(zhí)行按鈕。
MATCH (cc:CreditCard) RETURN cc.id as id,cc.number as number,cc.name as name, cc.valid_from as valid_from,cc.valid_to as valid_to UNION MATCH (dc:DebitCard) RETURN dc.id as id,dc.number as number,dc.name as name, dc.valid_from as valid_from,dc.valid_to as valid_to
在這里,因?yàn)閁NION子句過濾它們,我們可以看到該命令返回9行沒有重復(fù)的行。
它結(jié)合并返回兩個(gè)結(jié)果集的所有行成一個(gè)單一的結(jié)果集。它還返回由兩個(gè)節(jié)點(diǎn)重復(fù)行。
結(jié)果列類型,并從兩個(gè)結(jié)果集的名字必須匹配,這意味著列名稱應(yīng)該是相同的,列的數(shù)據(jù)類型應(yīng)該是相同的。
<MATCH Command1> UNION ALL <MATCH Command2>
語(yǔ)法說明
S.No. | 語(yǔ)法元素 | 描述 |
---|---|---|
1。 | <MATCH COMMAND1> | 這是CQL match命令由UNION子句中使用的一個(gè)。 |
2。 | <MATCH命令2> | 這是CQL match命令兩到由UNION子句中使用。 |
3。 | UNION ALL | 這是UNION ALL子句的Neo4j的CQL關(guān)鍵字。 |
注意 -
如果這兩個(gè)查詢不返回相同的列名和數(shù)據(jù)類型,那么它拋出一個(gè)錯(cuò)誤。
在本章中,我們將采取一個(gè)銀行應(yīng)用程序的節(jié)點(diǎn):信用卡式和借記卡解釋UNION子句
第1步 -打開Neo4j的數(shù)據(jù)瀏覽器
第2步 -在數(shù)據(jù)瀏覽器的美元提示符處鍵入以下命令。
MATCH (cc:CreditCard) RETURN cc
點(diǎn)擊“下載CSV”來查看結(jié)果
第1步 -打開Neo4j的數(shù)據(jù)瀏覽器
第2步 -在數(shù)據(jù)瀏覽器的美元提示符處鍵入以下命令。
MATCH (dc:DebitCard) RETURN dc
點(diǎn)擊“下載CSV”來查看結(jié)果
我們將利用這些數(shù)據(jù)來解釋的Neo4j CQL UNION與實(shí)例的使用
本例說明:如果UNION子句的這兩個(gè)查詢確實(shí)有相同的名稱或相同的數(shù)據(jù)類型及其列會(huì)發(fā)生什么。
第1步 -打開Neo4j的數(shù)據(jù)瀏覽器
這是Neo4j的數(shù)據(jù)瀏覽器首頁(yè)
第2步 -在數(shù)據(jù)瀏覽器的美元提示符處鍵入以下命令。
MATCH (cc:CreditCard) RETURN cc.id as id,cc.number as number,cc.name as name, cc.valid_from as valid_from,cc.valid_to as valid_to UNION ALL MATCH (dc:DebitCard) RETURN dc.id as id,dc.number as number,dc.name as name, dc.valid_from as valid_from,dc.valid_to as valid_to
第3步 -點(diǎn)擊執(zhí)行按鈕,看到成功消息數(shù)據(jù)瀏覽器。
在這里,我們可以觀察到這個(gè)命令返回10行,因?yàn)榕cUNION ALL子句不過濾它們重復(fù)行。如果我們使用UNION子句,它將返回只有9行。詳情請(qǐng)參閱UNION子句章節(jié)進(jìn)行檢查。
更多建議: