【sql】 语句不熟悉带来的坑

用最简单的语法语句,直接查出想要的结果。这是最经典的名言


由于自己对数据库不怎么熟悉,在查询操作时,总会犯错,查不出想要的结果,报错,写错,想得复杂的语句。。。。各种坑,学习不努力,老大就伤悲,数据库学不好,现在就忧愁       

--by 王子        哭晕在厕所!!!


实例

查询一张表中多个条件组合的结果。表:t_bms_merchant_purchaser ,

查询条件字段:1、商户:merchant_code,2、删除:is_deleted,3、散户:contact 。

结果是要查出这张表中这个商户没有被删除的散户:

1、最简单直接粗暴的语句:SELECT * FROM t_bms_merchant_purchaser WHERE merchant_code="E825DB3D495F47E1B2E97F2D0571C62A" AND is_deleted=0 AND contact="散户"

结果如下:

2、一种错误语句,结果是错的。前提是想查一个,再组合查下一个,最后查出来想要的结果。然而我想复杂了。如下:

SELECT * FROM t_bms_merchant_purchaser

WHERE contact = (

SELECT * FROM

(SELECT (SELECT * FROM t_bms_merchant_purchaser

WHERE merchant_code="E825DB3D495F47E1B2E97F2D0571C62A")

FROM t_bms_merchant_purchaser t WHERE is_deleted='0')

WHERE contact="散户")

结果报错了

报错:缺少别名

正确的写法:

select *

from (

select *

from (SELECT * FROM t_bms_merchant_purchaser

WHERE merchant_code="E825DB3D495F47E1B2E97F2D0571C62A") a

where a.is_deleted='0') b

where b.contact="散户"

得出结果如下:


总结如上,结果可能是一种,方法可能有多种,但是能直接有效的得出结果,就是好方法,尽量找简单的方法去实现。数据库知识较多,必须经常使用和操作,正所谓熟能生巧,多操作,多学习,总是没错的,只是有点枯燥而已,相比不熟悉来得有价值!

相关sql 知识点,下次分享


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容