通過不同的查詢方式解決笛卡爾集問題

2021-10-24 12:37:48 字數 728 閱讀 8230

自然連線的顯著作用在於控制笛卡爾集的產生,將其衍生出的冗餘資料歸一化;

消除笛卡爾集我們常常採用連線查詢,這裡可以認為自然連線是連線查詢的另一種體現;

自然連線的原理是這樣的,它會自動檢索兩張表中同名同型別的字段然後將其作為連線條件;

這樣就造成了乙個問題,那就是如果有多個同名同型別的字段時,它將應收盡收,以這麼多個字段作為連線條件;

為了能夠解決這種狀況,為了能夠指定自己想要使用的連線字段,產生了join…using的寫法;

與之作用類似的還有join…on

下面貼出同一操作的四種寫法:

連線查詢

select a.x,b.y from a,b where a.z=b.z;
自然連線

select a.x,b.y from a natural

join b;

join…using

select a.x,b,y from a join b using

(z);

join…on

select a.x,b.y from a join b on a.z=y.z;

遞迴方式列印多個陣列的笛卡爾積

先宣告兩個全域性變數 private static int length private static int count 呼叫此方法,引數為可變長陣列 private static void execute string.args 遞迴呼叫列印笛卡爾積 private static void pr...

SQL中的多表關聯查詢 笛卡爾積 內連線 外連線

笛卡爾乘積是指在數學中,兩個集合x和y的笛卡爾積 cartesian product 又稱直積,表示為x y,第乙個物件是x的成員而第二個物件是y的所有可能有序對的其中乙個成員。笛卡爾積由笛卡爾提出。又稱笛卡爾乘積。簡單概括 舉例說明 集合x 集合y 兩個集合的笛卡爾積為.他們的結果為x集合的成員個...

兩種查詢方式的不同

第一種,查詢的 string hql select soft.softid,soft.softname,soft.id from so.supercargo.soft as soft where soft.state in 1,2 ilist list session.find hql 第二種,查詢...