700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql 内联 外联_sql中的内联和外联(简单用法)

mysql 内联 外联_sql中的内联和外联(简单用法)

时间:2020-05-13 09:53:41

相关推荐

mysql 内联 外联_sql中的内联和外联(简单用法)

有两张表:user和department

User表:

CREATETABLE`user`(

`id`int(11)NOTNULLAUTO_INCREMENT,

`name`varchar(30)DEFAULTNULL,

`age`int(11)DEFAULTNULL,

`birthday`dateDEFAULTNULL,

PRIMARYKEY(`id`)

)

INSERT INTO USER VALUE(NAME,age,birthday)

VALUES("张三",20,"-10-31");

表内数据如下:

部门表:

CREATETABLE`department`(

`id`bigint(11)NOTNULL,

`name`varchar(10)NOTNULL,

`descr`varchar(50)DEFAULTNULL,

PRIMARYKEY(`id`)

)

INSERT INTO department (id,NAME,descr)

VALUES(1,"开发部","开发高级产品");

表内数据如下:

一、正常两表联合查询的sql语句:

SELECT u.id,u.name,u.age,d.name,d.descr

FROM USER u,department d WHERE u.id=d.id

查询结果

(或者:SELECT * FROM USER u,department d WHERE u.id=d.id)

二、左联查询sql语句:

SELECT * FROM USER u LEFT JOIN department d

ON u.id=d.id

查询结果:

根据查询结果可以看出:左联查询把前面表(user)全部查出,右表只查出部分,左表有的右表没有就为空

三、右联查询sql语句:

SELECT * FROM USER u RIGHT JOIN department

d ON u.id=d.id

查询结果:

根据结果可以看出:右联查询把后面表(department)全部查出,左表只查出部分,右表有的左表没有就为空

四、内联查询sql语句:

SELECT * FROM USER u INNER JOIN department

d ON u.id=d.id

其结果与SELECT * FROM USER u,department d WHERE u.id=d.id查询结果一样,查出两表中满足条件的记录(是两张表同时满足哦)

还可以使用where或and带条件查询。

SELECT * FROM USER u INNER JOIN department

d ON u.id=d.id AND u.age=20

查询结果:

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

查询结果:

根据以上可以看出:

1、使用外联查询时,添加and查询条件,不影响内外联查询的性质,只是查询的结果满足查询条件,添加where查询条件时,只能查到满足条件的记录(结果与内联查询一样)。

2、内联查询时,添加and或where条件时,查询结果都一样,只与查询条件有关

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。