【MySQL联合查询】内连接查询详解
目錄
??? 🍀什么是內(nèi)連接查詢
????? 🍀自連接
????? 🍀等值連接
????? 🍀不等值連接
什么是內(nèi)連接查詢
??? 在實際開發(fā)中,我們會聯(lián)合多個表來實現(xiàn)查詢,比如把班級表和學(xué)生表聯(lián)合起來就同時可以看到班級、老師和學(xué)員的信息,一個班級表:
??? 一個班級對應(yīng)著多個學(xué)生,以下是與之對應(yīng)的學(xué)生表:
??? 將兩個表中ID 相同的記錄關(guān)聯(lián)起來組成一個新的“列表”,這就是聯(lián)合查詢:
??? 這種只有2張表匹配的行才能顯示的連接方式在Mysql 中稱之為內(nèi)連接: INNER JOIN
??? 在MySQL中內(nèi)連接數(shù)據(jù)查詢通過“INNER JOIN…ON”語句來實現(xiàn),語法形式如下所示。
SELECT field1,field2,…,fieldn FROM tablename1 INNER JOIN tablename2 [INNER JOIN tablenamen] ON CONDITION- 參數(shù)fieldn表示要查詢的字段名,來源于所連接的表tablename1和tablename2;
- 關(guān)鍵字INNER JOIN表示表進行內(nèi)連接;
- 參數(shù)CONDITION表示進行匹配的條件。
??? 這里有student表和class表,用來對下面三種自連接方式做演示:
?自連接
??? 內(nèi)連接查詢中存在一種特殊的等值連接——自連接。所謂自連接,就是指表與其自身進行連接。
例如,在學(xué)生表中查詢學(xué)生小花所在班級的其他學(xué)生
select t1.name,t1.class_id from student t1 inner join student t2 on t1.class_id=t2.class_id and t2.name='小花';等值連接
??? 內(nèi)連接查詢中的等值連接就是在關(guān)鍵字ON后的匹配條件中通過等于關(guān)系運算符(=)來實現(xiàn)等值條件。
例如:
select * from class as a inner join student as b where a.id = b.class_id;不等值連接
??? 內(nèi)連接查詢中的不等連接就是在關(guān)鍵字ON后的匹配條件中通過除了等于關(guān)系運算符來實現(xiàn)不等條件外,還可以使用關(guān)系運算符,包含“>”“>=”“<”“<=”和“!=”等運算符號。
例如:
select * from class as a inner join student as b where a.id != b.class_id;總結(jié)
以上是生活随笔為你收集整理的【MySQL联合查询】内连接查询详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql关联查询去重_mysql |
- 下一篇: mysql 多表查询 like_MYSQ