进行多表查询(隐式内连接)
多表查询就是把多张表的数据集合到一个结果集里面(连接查询)。
内连接:
相连接的表地位平等
相连接的表必须存在公共的字段(列)
显示内连接查询数据的速度要快于隐式内连接
这里我打算详细贴出几张表来说明一下情况:
table1:
GAME | SCORE | |
---|---|---|
1804942380 | Kan | 146 |
1804942387 | Han | 250 |
1804942389 | Jan | 156 |
2638662950 | Han | 120 |
2638662951 | Nan | 100 |
2638662952 | Nan | 130 |
table2:
NAMee | bianhao | |
---|---|---|
1804942380 | F | a |
1804942387 | E | b |
1804942389 | D | c |
2638662950 | C | d |
2638662951 | B | e |
2638662952 | A | f |
table3:
ORDErr | bianhao | |
---|---|---|
1804942380 | 6 | a |
1804942387 | 5 | b |
1804942389 | 4 | c |
2638662950 | 3 | d |
2638662951 | 2 | e |
2638662952 | 1 | f |
在数据库里建好这三张表之后,我打算现在用SELECT 来查询这样一张数据:
游戏 | 名字 | 排名 |
---|---|---|
… | … | … |
其中游戏来自于table1, 名字来自于table2, 排名来自于table3.
贴出代码如下:
SELECT GAME AS '游戏',NAMee AS '名字',ORDErr AS '排名'
FROM table1,table2,table3
WHERE table1.QQ=table2.QQ AND table2.bianhao=table3.bianhao
然后贴出运行结果:
进行多表查询做关键的部分是WHERE后面的限制语句,限制语句如果没写好的话,那么查询的结果就会不尽人意,所以如果当你在进行多表查询的时候,如果得到的结果不是你预期的,那么请好好看下自己的限制语句。