当前位置:Gxlcms > 数据库问题 > SQL多表联查总结

SQL多表联查总结

时间:2021-07-01 10:21:17 帮助过:18人阅读

logs表

id user_id log
1 1 操作了A
2 1 操作了B
3 2 操作了C
4 2 操作了D
5 3 操作了E

 

交叉连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a,
`logs` AS b

结果

id name log
1 李四 操作了A
2 王五 操作了A
4 张三 操作了A
1 李四 操作了B
2 王五 操作了B
4 张三 操作了B
1 李四 操作了C
2 王五 操作了C
4 张三 操作了C
1 李四 操作了D
2 王五 操作了D
4 张三 操作了D
1 李四 操作了E
2 王五 操作了E
4 张三 操作了E

 

内连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
INNER JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D

 

左外连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
LEFT JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D
4 张三 NULL

 

右外连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
RIGHT JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D
NULL NULL 操作了E

 

SQL多表联查总结

标签:操作   表结构   条件   logs   select   user   log   卡尔   查询   

人气教程排行