mysql 内联 外联_sql中的内联和外联(简单用法)
有兩張表:user和department
User表:
CREATE?TABLE?`user`?(
`id`?int(11)?NOT?NULL?AUTO_INCREMENT,
`name`?varchar(30)?DEFAULT?NULL,
`age`?int(11)?DEFAULT?NULL,
`birthday`?date?DEFAULT?NULL,
PRIMARY?KEY?(`id`)
)
INSERT INTO USER VALUE(NAME,age,birthday)
VALUES("張三",20,"2018-10-31");
表內(nèi)數(shù)據(jù)如下:
部門表:
CREATE?TABLE?`department`?(
`id`?bigint(11)?NOT?NULL,
`name`?varchar(10)?NOT?NULL,
`descr`?varchar(50)?DEFAULT?NULL,
PRIMARY?KEY?(`id`)
)
INSERT INTO department (id,NAME,descr)
VALUES(1,"開發(fā)部","開發(fā)高級產(chǎn)品");
表內(nèi)數(shù)據(jù)如下:
一、正常兩表聯(lián)合查詢的sql語句:
SELECT u.id,u.name,u.age,d.name,d.descr
FROM USER u,department d WHERE u.id=d.id
查詢結(jié)果
(或者:SELECT * FROM USER u,department d WHERE u.id=d.id)
二、左聯(lián)查詢sql語句:
SELECT * FROM USER u LEFT JOIN department d
ON u.id=d.id
查詢結(jié)果:
根據(jù)查詢結(jié)果可以看出:左聯(lián)查詢把前面表(user)全部查出,右表只查出部分,左表有的右表沒有就為空
三、右聯(lián)查詢sql語句:
SELECT * FROM USER u RIGHT JOIN department
d ON u.id=d.id
查詢結(jié)果:
根據(jù)結(jié)果可以看出:右聯(lián)查詢把后面表(department)全部查出,左表只查出部分,右表有的左表沒有就為空
四、內(nèi)聯(lián)查詢sql語句:
SELECT * FROM USER u INNER JOIN department
d ON u.id=d.id
其結(jié)果與SELECT * FROM USER u,department d WHERE u.id=d.id查詢結(jié)果一樣,查出兩表中滿足條件的記錄(是兩張表同時滿足哦)
還可以使用where或and帶條件查詢。
SELECT * FROM USER u INNER JOIN department
d ON u.id=d.id AND u.age=20
查詢結(jié)果:
SELECT * FROM USER u LEFT JOIN department d
ON u.id=d.idWHERE u.name LIKE '%王%'
SELECT * FROM USER u RIGHT JOIN department
d ON u.id=d.idAND u.age=20
查詢結(jié)果:
根據(jù)以上可以看出:
1、使用外聯(lián)查詢時,添加and查詢條件,不影響內(nèi)外聯(lián)查詢的性質(zhì),只是查詢的結(jié)果滿足查詢條件,添加where查詢條件時,只能查到滿足條件的記錄(結(jié)果與內(nèi)聯(lián)查詢一樣)。
2、內(nèi)聯(lián)查詢時,添加and或where條件時,查詢結(jié)果都一樣,只與查詢條件有關(guān)
總結(jié)
以上是生活随笔為你收集整理的mysql 内联 外联_sql中的内联和外联(简单用法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python通过selenium爬取百度
- 下一篇: 数据库服务:数据库表空间扩容