今天改了 bug,看到了一个 sql,顿时惊了。。。。。 这个是新项目,还没上线这部分内容。。

2020 年 7 月 3 日
 luxinfl
SELECT
a.*
FROM
(
SELECT
a.*
FROM
(
SELECT
a.*
FROM
(
SELECT
a.*
FROM
(
SELECT
a.*
FROM
(
SELECT
PLATFORM_REQUEST_CODE AS platformRequestCode,
AGGTEGATE_REQUEST_CODE AS aggtegateRequestCode,
CREATE_TIME AS createTime,
STATUS AS payStatus,
MERCHANT_GENERATE_CODE AS platformCode,
USER_CODE AS buyCode,
CHANNEL_NO AS channelNo
FROM
tb_aggtegate_payment_request
WHERE
STATUS != '00'
AND DEL_FLAG = 0
AND IS_VALID = 0
ORDER BY
CREATE_TIME DESC
) a
LEFT JOIN ( SELECT CHANNEL_REQUEST_CODE AS channelOrderCode, AGGTEGATE_REQUEST_CODE AS channelaggtegateRequestCode FROM tb_channel_send_report WHERE DEL_FLAG = 0 ) b ON a.aggtegateRequestCode = b.channelaggtegateRequestCode
) a
LEFT JOIN ( SELECT MERCHANT_INFO_CODE, MERCHANT_INFO_NAME AS platformName FROM tb_merchant_info WHERE DEL_FLAG = 0 ) c ON c.MERCHANT_INFO_CODE = a.platformCode
) a
LEFT JOIN ( SELECT PLATFORM_USER_CODE, MERCHANT_NAME AS merchantName FROM tb_user_info WHERE DEL_FLAG = 0 ) b ON a.buyCode = b.PLATFORM_USER_CODE
) a
LEFT JOIN ( SELECT CHANNEL_CODE, CHANNEL_NAME AS channelName FROM tb_channel_info WHERE DEL_FLAG = 0 ) b ON a.channelNo = b.CHANNEL_CODE
) a
LEFT JOIN ( SELECT AGGTEGATE_REQUEST_CODE, TIME_END AS payTime FROM tb_wxpay_order_business WHERE DEL_FLAG = 0 AND IS_VALID = 0 ) b ON a.aggtegateRequestCode = b.AGGTEGATE_REQUEST_CODE
WHERE
1 = 1
13141 次点击
所在节点    程序员
85 条回复
sonice
2020 年 7 月 3 日
这儿就震惊了?普普通通
BrettD
2020 年 7 月 3 日
这一坨怕不是复制粘贴搭出来的😂
sunziren
2020 年 7 月 3 日
............,√
............,×
jswxg
2020 年 7 月 3 日
格式化后看就清楚很多了。

SELECT a.*
FROM (
SELECT a.*
FROM (
SELECT a.*
FROM (
SELECT a.*
FROM (
SELECT a.*
FROM (
SELECT PLATFORM_REQUEST_CODE AS platformRequestCode, AGGTEGATE_REQUEST_CODE AS aggtegateRequestCode, CREATE_TIME AS createTime, STATUS AS payStatus, MERCHANT_GENERATE_CODE AS platformCode
, USER_CODE AS buyCode, CHANNEL_NO AS channelNo
FROM tb_aggtegate_payment_request
WHERE STATUS != '00'
AND DEL_FLAG = 0
AND IS_VALID = 0
ORDER BY CREATE_TIME DESC
) a
LEFT JOIN (
SELECT CHANNEL_REQUEST_CODE AS channelOrderCode, AGGTEGATE_REQUEST_CODE AS channelaggtegateRequestCode
FROM tb_channel_send_report
WHERE DEL_FLAG = 0
) b
ON a.aggtegateRequestCode = b.channelaggtegateRequestCode
) a
LEFT JOIN (
SELECT MERCHANT_INFO_CODE, MERCHANT_INFO_NAME AS platformName
FROM tb_merchant_info
WHERE DEL_FLAG = 0
) c
ON c.MERCHANT_INFO_CODE = a.platformCode
) a
LEFT JOIN (
SELECT PLATFORM_USER_CODE, MERCHANT_NAME AS merchantName
FROM tb_user_info
WHERE DEL_FLAG = 0
) b
ON a.buyCode = b.PLATFORM_USER_CODE
) a
LEFT JOIN (
SELECT CHANNEL_CODE, CHANNEL_NAME AS channelName
FROM tb_channel_info
WHERE DEL_FLAG = 0
) b
ON a.channelNo = b.CHANNEL_CODE
) a
LEFT JOIN (
SELECT AGGTEGATE_REQUEST_CODE, TIME_END AS payTime
FROM tb_wxpay_order_business
WHERE DEL_FLAG = 0
AND IS_VALID = 0
) b
ON a.aggtegateRequestCode = b.AGGTEGATE_REQUEST_CODE
WHERE 1 = 1
aaronlam
2020 年 7 月 3 日
这就震惊了,想当年我刚接触到我们公司计费系统的 SQL 代码时,整个人都不好了。
Adriel
2020 年 7 月 3 日
1=1 就很灵性了
loading
2020 年 7 月 3 日
@airplayxcom 1=1 是标准的拼接 sql 常用技巧
luxinfl
2020 年 7 月 3 日
@BrettD 不会在上面搞格式,好复杂
takemeaway
2020 年 7 月 3 日
挺好的项目,就是写这个项目的人脑子太直了
luxinfl
2020 年 7 月 3 日
@sonice 订单查询的话,量大了不会要很长时间么。性能太差了吧
luxinfl
2020 年 7 月 3 日
@takemeaway 话说不是不应该用这么多连接么,阿里巴巴开发手册上面还禁止使用连接
luxinfl
2020 年 7 月 3 日
@jswxg 感觉没差。。sql 这样写真的好么
est
2020 年 7 月 3 日
新人和老人的区别就是面对一坨屎山,新人会大吃一斤。老人会贤淑的避开最臭的那部分屎,然后灵巧的在保证屎山不垮的情况下把自己的屎再拉一层上去
cbasil
2020 年 7 月 3 日
太复杂,join 多的查询建视图啊,
sonice
2020 年 7 月 3 日
@luxinfl 性能好不好跟索引、数据量、服务器性能等等有关。单看语句的话没啥毛病。
laminux29
2020 年 7 月 3 日
DBA 不懂编程思维,不懂调试测试,写出 shi 一样的 SQL,很正常。

你受不了可以自己改。
luxinfl
2020 年 7 月 3 日
@laminux29 这是开发写的,我们小公司,没有 dba
rtp
2020 年 7 月 3 日
这才哪到哪,我记得原来的公司,写统计方面的 sql,基本上都是一条语句几屏幕啊……
soulzz
2020 年 7 月 3 日
牛皮 用 sql 语句写业务
估计真的是老开发才会干的蠢事
z960112559
2020 年 7 月 3 日
@est 666

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/686858

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX