国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫(kù) > MySQL > 正文

mysql中關(guān)聯(lián)查詢sql語句

2024-07-24 12:38:59
字體:
供稿:網(wǎng)友

關(guān)聯(lián)子查詢是指一個(gè)包含對(duì)表的引用的子查詢,該表也顯示在外部查詢中,通俗一點(diǎn)來講,就是子查詢引用到了主查詢的數(shù)據(jù)數(shù)據(jù).

以一個(gè)實(shí)際的例子來理解關(guān)聯(lián)子查詢:

left join:左連接,返回左表中所有的記錄以及右表中連接字段相等的記錄.

right join:右連接,返回右表中所有的記錄以及左表中連接字段相等的記錄.

inner join:內(nèi)連接,又叫等值連接,只返回兩個(gè)表中連接字段相等的行.

full join:外連接,返回兩個(gè)表中的行:left join + right join.

cross join:結(jié)果是笛卡爾積,就是第一個(gè)表的行數(shù)乘以第二個(gè)表的行數(shù).

代碼如下:

  1. declare @a table(a int,b int
  2. declare @b table(a int,b int
  3.  
  4. insert @a values(1,1) 
  5. insert @a values(2,2) 
  6. insert @b values(1,1) 
  7. insert @b values(3,3) 
  8. select * from @a  
  9. select * from @b --Vevb.com 
  10. --左: 
  11. select * from @a Aa left join @b Bb on Aa.a=Bb.a 
  12. --右: 
  13. select * from @a Aa right join @b Bb on Aa.a=Bb.a 
  14. --內(nèi) 
  15. select * from @a Aa inner join @b Bb on Aa.a=Bb.a 
  16. --外: 
  17. select * from @a Aa full join @b Bb on Aa.a=Bb.a 
  18. --交叉連接 
  19. select * from @a  cross join @b 

關(guān)聯(lián)子查詢效率:

很明顯,一般情況下關(guān)聯(lián)子查詢的效率是比較低下的,實(shí)際上本例中的關(guān)聯(lián)子查詢例子也僅是為了演示關(guān)聯(lián)子查詢的原理及用法,如果可以的話,關(guān)聯(lián)子查詢盡量使用 JOIN 或其他查詢來代替,如本例中,使用 INNER JOIN 來替換的 SQL 為.SELECT article.* FROM article INNER JOIN user ON article.uid = user.uid

注意:此處只是為了演示用 INNER JOIN 替換關(guān)聯(lián)子查詢的樣例,并非表名這種處理是最優(yōu)處理.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永嘉县| 六枝特区| 东丽区| 海兴县| 铅山县| 通渭县| 大连市| 吐鲁番市| 漠河县| 夏津县| 江川县| 丹寨县| 荥阳市| 崇义县| 泰州市| 中西区| 乐业县| 涞源县| 五莲县| 泽普县| 天镇县| 江都市| 铁岭县| 常德市| 简阳市| 陆丰市| 萨嘎县| 江孜县| 蓬溪县| 桑植县| 曲沃县| 垣曲县| 亚东县| 通榆县| 维西| 通海县| 盐源县| 兴业县| 沧州市| 平顶山市| 吐鲁番市|