程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 詳解mysql語法left join,right join,inner join

詳解mysql語法left join,right join,inner join

編輯:MySQL綜合教程

詳解mysql語法left join,right join,inner join
  測試表用戶表user:  www.2cto.com   測試表密碼表pwd:  www.2cto.com   1、創建user表: 1 CREATE TABLE `user` ( 2   `id` int(11) NOT NULL auto_increment, 3   `name` varchar(255) default NULL, 4   `password` varchar(255) default NULL, 5   PRIMARY KEY  (`id`) 6 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2、創建pwd表: 1 CREATE TABLE `pwd` ( 2   `id` int(11) NOT NULL auto_increment, 3   `userid` int(11) default NULL, 4   `passwd` varchar(255) default NULL, 5   PRIMARY KEY  (`id`) 6 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;     3、使用inner join 將pwd表中的passwd填入到user表中的password列(根據userid),SQL語句: 1 UPDATE `user` U 2 INNER JOIN `pwd` P 3 ON P.userid=U.id 4 SET U.password = P.passwd; 4、 left join(左聯接) 查詢user中的信息   1 SELECT us.*,pw.* FROM `user` us  2 LEFT JOIN pwd pw 3 ON pw.userid=us.id;     結果: 說明: 
left join是以User表的記錄為基礎的,User可以看成左表,pwd可以看成右表,left join是以左表為准的. 
換句話說,左表(User)的記錄將會全部表示出來,而右表(pwd)只會顯示符合搜索條件的記錄(例子中為: pw.userid=us.id). 
B表記錄不足的地方均為NULL.  5、left join(左聯接) 查詢pwd中的信息
1 SELECT us.*,pw.* FROM `user` us  2 RIGHT JOIN pwd pw 3 ON pw.userid=us.id;   結果: 說明: 和left join的結果剛好相反,這次是以右表(pwd)為基礎的,user表不足的地方用NULL填充.  6、inner join(相等聯接或內聯接) 

1 SELECT us.*,pw.* FROM `user` us  2 inner JOIN pwd pw 3 ON pw.userid=us.id;   結果: 說明: 很明顯,這裡只顯示出了 pw.userid=us.id的記錄.這說明inner join並不以誰為基礎,它只顯示符合條件的記錄.   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved