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

首頁 > 數據庫 > MySQL > 正文

Mysql中的join操作

2024-07-24 12:51:48
字體:
來源:轉載
供稿:網友

 join的類型

1.  內聯結:將兩個表中存在聯結關系的字段符合聯結關系的那些記錄形成記錄集的聯結。

2.  外聯結:分為外左聯結和外右聯結。

案例背景

create table java (name varchar(255));insert into java values ('java1'),('java2'),('blue'); create table mysql (name varchar(255));insert into mysql values ('mysql1'),('mysql2'),('blue');

內聯結

select * from java,mysql where java.name=mysql.name;SELECT * FROM java JOIN mysql ON java.name=mysql.name;SELECT * FROM java INNER JOIN mysql ON java.name=mysql.name;SELECT * FROM java CROSS JOIN mysql ON java.name=mysql.name;SELECT * FROM java STRAIGHT_JOIN mysql ON java.name=mysql.name;

這四個語句都是內聯結,返回結果都是

+------+------+| name | name |+------+------+| blue | blue |+------+------+
table_reference條目中的每個逗號都看作相當于一個內部聯合 默認的JOIN都是INNER JOIN CROSS JOIN從語法上說與INNER JOIN等同 STRAIGHT_JOIN與JOIN相同。除了有一點不一樣,左表會在右表之前被讀取。STRAIGH_JOIN可以被用于這樣的情況,即聯合優化符以錯誤的順序排列表。

內聯結的語法如下:

join_table: table_reference [INNER | CROSS] JOIN table_factor [join_condition] | table_reference STRAIGHT_JOIN table_factor | table_reference STRAIGHT_JOIN table_factor ON condition

外聯結

左聯結

SELECT * FROM java LEFT JOIN mysql ON java.name=mysql.name;

結果是

+-------+------+| name | name |+-------+------+| java1 | NULL || java2 | NULL || blue | blue |+-------+------+

所以從上面結果看出,因為Java表中的java1和java2記錄的name沒有在MySQL表中有對應name,因此為空,但java 所有的列欄仍有java1和java2記錄,mysql表所有列欄為NULL。而剩下的blue的那條記錄就是java表和mysql表內連接的結果。

如果對于在LEFT JOIN中的ON或USING部分中的右表沒有匹配的記錄,則所有列被設置為NULL的一個行被用于右表。如果一個表在其它表中沒有對應部分,您可以使用這種方法在這種表中查找記錄:

SELECT * FROM java LEFT JOIN mysql ON java.name=mysql.name WHERE mysql.name IS NULL;

該sql找出在java的人,但是不在mysql里的人,這里明顯是人員'java1'和'java2'符合要求。

右聯結

SELECT * FROM java RIGHT JOIN mysql ON java.name=mysql.name;

返回結果是

+------+--------+| name | name |+------+--------+| NULL | mysql1 || NULL | mysql2 || blue | blue |+------+--------+

右聯結和左聯接結果類似,只是這次是mysql表保存所有的結果集。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南岸区| 常州市| 罗城| 嘉兴市| 汤原县| 米林县| 河东区| 米林县| 博白县| 钦州市| 昌乐县| 法库县| 西乡县| 长葛市| 凤城市| 桂阳县| 富锦市| 平和县| 中江县| 磐石市| 仙桃市| 宜宾市| 河间市| 黑龙江省| 平阴县| 通州区| 汝州市| 房产| 和平县| 沿河| 容城县| 浮梁县| 泗洪县| 侯马市| 栾川县| 龙胜| 青浦区| 宁明县| 运城市| 上思县| 洛浦县|