用最简单的语法语句,直接查出想要的结果。这是最经典的名言
由于自己对数据库不怎么熟悉,在查询操作时,总会犯错,查不出想要的结果,报错,写错,想得复杂的语句。。。。各种坑,学习不努力,老大就伤悲,数据库学不好,现在就忧愁
--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 知识点,下次分享