国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 祁门县| 霍城县| 岢岚县| 石景山区| 平顶山市| 霍州市| 岳池县| 卢龙县| 东兰县| 黑河市| 衡东县| 淄博市| 个旧市| 太保市| 麻江县| 广汉市| 新宁县| 凌源市| 高碑店市| 邢台市| 西安市| 淄博市| 腾冲县| 江陵县| 开远市| 财经| 平度市| 新密市| 若尔盖县| 霸州市| 扶余县| 凤凰县| 金沙县| 玉山县| 二连浩特市| 清丰县| 叶城县| 登封市| 宜章县| 三亚市| 白玉县|