日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer數(shù)據(jù)庫沒有JOIN條件導(dǎo)致笛卡爾乘積

SQL Server數(shù)據(jù)庫中,我們常常用到JOIN條件來對數(shù)據(jù)庫進行連接查詢,需要注意的一個問題就是沒有JOIN條件會導(dǎo)致的笛卡爾乘積的問題。學(xué)過線性代數(shù)的人都知道,笛卡爾乘積通俗的說,就是兩個集合中的每一個成員,都與對方集合中的任意一個成員有關(guān)聯(lián)??梢韵胂?,在SQL查詢中,如果對兩張表JOIN查詢而沒有JOIN條件時,就會產(chǎn)生笛卡爾乘積。這就是我們的笛卡爾乘積導(dǎo)致的性能問題中最常見的案例:開發(fā)人員在寫代碼時遺漏了JOIN條件。

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的阿魯科爾沁網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

發(fā)生笛卡爾乘積的sql:

 
 
 
  1. select sum(project_fj.danjia*project_fj.mianji) from project_fj,orderform  
  2. where project_fj.zhuangtai='未售' and project_fj.project_id=30 

這個語句其實只是sql語句的一部分,問題是另一部分用到了表orderform,所以from中有orderform,但是上面的這部分語句完全沒有用到orderform,但是不設(shè)置條件就導(dǎo)致了笛卡爾乘積。

解決方法:

使用LEFT JOIN

 
 
 
  1. select sum(project_fj.danjia*project_fj.mianji) from project_fj LEFT JOIN orderform ON project_fj.id=orderform.project_id    
  2. where project_fj.zhuangtai='未售' and project_fj.project_id=30 

以上就是SQL查詢中沒有JOIN條件導(dǎo)致的笛卡爾乘積從而影響性能的一個案例,本文我們就介紹到這里了,希望本次的介紹能夠給對您有所收獲!

【編輯推薦】

  1. SQL Server數(shù)據(jù)庫default value的使用總結(jié)
  2. SQL Server結(jié)合Mybatis調(diào)用存儲過程返回結(jié)果集
  3. SQL Server數(shù)據(jù)庫獲取TEXT字段的內(nèi)容長度的方法
  4. SQL Server 2008學(xué)習(xí)筆記之去重和給新加字段賦值
  5. SQL Server 2008中使用FileStream存取大文件實例介紹

文章標題:SQLServer數(shù)據(jù)庫沒有JOIN條件導(dǎo)致笛卡爾乘積
轉(zhuǎn)載來于:http://www.5511xx.com/article/cojioeh.html