关于sql语句的反勾号``补充

      在前面已经说过了,在添加表、字段等名称时尽量使用反勾号括住;

但是在后面的联表查询时和一开始的情况不大一样;
的确在表和字段中都用比较好,但是下面不大一样,也就是联表取两个表中的相同值时
注意,在联表查询之前,我都给字段名和表名加上了反勾号!

1、正确情况
在两个表中的相同字段名中没有加反勾号,其它都加

-- --------------- 联表查询 join -------------------------------
-- 查询参加了考试的同学(学号,姓名,科目编号,分数)
/*思路
1.分析需求,分析查询的字段来自哪些表(连接查询)
2.确定使用哪种连接查询?7种
3.确定交叉点(这两个表中哪个数据是相同的)
4.判断的条件:学生表 studentno = 成绩表 studentno

*/
SELECT s.studentno,`studentname`,`subjectno`,`studentresult`
FROM `student` AS s
INNER JOIN `result` AS r
WHERE s.studentno = r.studentno;

结果如下:
查询正确
2、 错误情况
在两个表中的相同字段名中加了反勾号

SELECT `s.studentno`,`studentname`,`subjectno`,`studentresult`
FROM `student` AS s
INNER JOIN `result` AS r
WHERE `s.studentno` = `r.studentno`;

结果如下:
错误结果
警告:Unknown column ‘s.studentno’ in ‘field list’
文件列表中没有这个字段;在这它也没有提示说没有r.studentno

所以我想着试试r.studentno可不可以。

3、错误r.studentno
结果表明在联表查询里,在拥有相同的字段时相同字段最好不要加反勾号

错误2
4、正确查询
全都不加反勾号,当然前提是我的字段名和表名不和关键字冲突当然,冲突的名称,你可以加上反勾号,其它加不加都行;

SELECT s.studentno,studentname,subjectno,studentresult
FROM student AS s
INNER JOIN result AS r
WHERE s.studentno = r.studentno;

查询成功

5、全都加反勾号(注意反勾号位置

SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult`
FROM `student` AS s
INNER JOIN `result` AS r
WHERE s.`studentno` = r.`studentno`;

在这里记得不要把别名括住

当然,查询成功的前提还是得建表正确·

因为自己学到这里的时候浪费了点时间,就想着记录一下,希望文章对大家有点点帮助,少浪费点时间~fighting

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值