MYSQL之左連線、右連線、內連線、外連線、全連線
阿新 • • 發佈:2018-12-15
資料庫:MYSQL
建表語句:
DROP TABLE IF EXISTS a_table ; CREATE TABLE a_table ( a_hero_id int(11) DEFAULT NULL, a_hero_name varchar(10) DEFAULT NULL, a_hero_part varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of a_table -- ---------------------------- INSERT INTO a_table VALUES ('10', '甄姬', '法師'); INSERT INTO a_table VALUES ('11', '李白', '刺客'); INSERT INTO a_table VALUES ('12', '廉頗', '坦克'); INSERT INTO a_table VALUES ('4', '伽羅', '射手'); INSERT INTO a_table VALUES ('5', '亞瑟', '戰士'); -- ---------------------------- -- Table structure for b_table -- ---------------------------- DROP TABLE IF EXISTS b_table ; CREATE TABLE b_table ( b_hero_id int(11) DEFAULT NULL, b_hero_name varchar(10) DEFAULT NULL, b_hero_part varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of b_table -- ---------------------------- INSERT INTO b_table VALUES ('1', '武則天', '法師'); INSERT INTO b_table VALUES ('2', '項羽', '坦克'); INSERT INTO b_table VALUES ('3', '趙雲', '刺客'); INSERT INTO b_table VALUES ('4', '伽羅', '射手'); INSERT INTO b_table VALUES ('5', '亞瑟', '戰士');
內連線
結論:查詢結果是兩張表的交集部分 SQL語句:select * FROM a_table a INNER JOIN b_table b ON a.a_hero_id = b.b_hero_id
如下圖:
左連線
結論:查詢出來的結果-->左表資料全部會顯示出來;右表只會顯示符合條件的結果,將不符合條件的置為null select * FROM a_table a LEFT JOIN b_table b ON a.a_hero_id = b.b_hero_id
如下圖:
右連線
結論:查詢出來的結果-->右表資料全部會顯示出來;左表只會顯示符合條件的結果 SQL語句:select * FROM a_table a RIGHT JOIN b_table b ON a.a_hero_id = b.b_hero_id
全連線
MYSQL目前不支援