mysql-4連線
阿新 • • 發佈:2018-11-09
聯合多表查詢
菜鳥教程join
日常應用較多的是從多個表格中獲取資料。使用join可以在多個表查詢進行select、update、delete。
join按照功能分為三類:
- inner join(內連線、或等值連線):獲取兩個表中欄位匹配關係的記錄
- left join(左連線):獲取左表所有記錄,即使右表沒有對應匹配的記錄
- right join(右連線):獲取右表所有記錄,即使左表沒有對應匹配的記錄。
如果只寫join預設inner join
1.內連線
select a.runoob_id,a.runoob_author,b.runoob_count from runoob_tbl a join tcount_tbl b on a.runoob_author = b.runoob_author; -- 等價於 select a.runoob_id,a.runoob_author,b.runoob_count from runoob_tbl a, tcount_tbl b where a.runoob_author = b.runoob_author;
2.左連線
SELECT a.runoob_id, a.runoob_author, b.runoob_count
FROM runoob_tbl a LEFT JOIN tcount_tbl b
ON a.runoob_author = b.runoob_author;
3.右連線
``sql
SELECT a.runoob_id, a.runoob_author, b.runoob_count
FROM runoob_tbl a RIGHT JOIN tcount_tbl b
ON a.runoob_author = b.runoob_author;
```
4.內連線、左連線、右連線區別總結:
以上示例的準備資料,來自菜鳥
SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- 建立表結構`runoob_tbl` DROP TABLE IF EXISTS `runoob_tbl`; CREATE TABLE `runoob_tbl` ( `runoob_id` int(11) NOT NULL AUTO_INCREMENT, `runoob_title` varchar(100) NOT NULL, `runoob_author` varchar(40) NOT NULL, `submission_date` date DEFAULT NULL, PRIMARY KEY (`runoob_id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- 插入資料 INSERT INTO `runoob_tbl` VALUES ('1', '學習 PHP', '菜鳥教程', '2017-04-12'), ('2', '學習 MySQL', '菜鳥教程', '2017-04-12'), ('3', '學習 Java', 'RUNOOB.COM', '2015-05-01'), ('4', '學習 Python', 'RUNOOB.COM', '2016-03-06'), ('5', '學習 C', 'FK', '2017-04-05'); COMMIT; -- 建立表結構 `tcount_tbl` DROP TABLE IF EXISTS `tcount_tbl`; CREATE TABLE `tcount_tbl` ( `runoob_author` varchar(255) NOT NULL DEFAULT '', `runoob_count` int(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 插入資料 `tcount_tbl` INSERT INTO `tcount_tbl` VALUES ('菜鳥教程', '10'), ('RUNOOB.COM ', '20'), ('Google', '22'); COMMIT; SET FOREIGN_KEY_CHECKS = 1;