【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=”散户”

结果如下:

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

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=”散户”)

结果报错了

《【sql】 语句不熟悉带来的坑》 报错:缺少别名

正确的写法:

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】 语句不熟悉带来的坑》

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

相关sql 知识点,下次分享

    原文作者:_王子_
    原文地址: https://www.jianshu.com/p/fc996b4baa68
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞